j'ai écrit une simple fonction javascript pour valider les champs dans une page ASPXErreur d'exécution Microsoft JScript: Object requis
function validate()
{
if (document.getElementById("<%=tbName.ClientID%>").value=="")
{
alert("Name Feild can not be blank");
document.getElementById("<%=tbName.ClientID%>").focus();
return false;
}
if (document.getElementById("<%=ddlBranch.ClientID%>").value=="SelectBranch")
{
alert("Branch Should Be Selected");
document.getElementById("<%=ddlBranch.ClientID%>").focus();
return false;
}
}
Tout fonctionnait bien. Plus tard, je l'ai lié à la page aspx comme un fichier js externe.
tête runat = "server">
script src = le type "validation.js" = "text/javascript">
/script>
<title>Validations</title>
/head>
<form id="form" runat="server">
<asp:Label ID="lblName" runat="server" Text="Nmae: ">/asp:Label>
<asp:TextBox ID="tbName" runat="server" Width="130px">/asp:TextBox>
<asp:Label ID="lblBranch" runat="server" Text="Branch:">/asp:Label>
<asp:DropDownList ID="ddlBranch" runat="server" Width="107px">
<asp:ListItem>CSE</asp:ListItem>
<asp:ListItem>ECE</asp:ListItem>
<asp:ListItem>CIVIL</asp:ListItem>
<asp:ListItem>MECH</asp:ListItem>
<asp:ListItem Selected="True" Value="SelectBranch">SelectBranch</asp:ListItem>
</asp:DropDownList>
<asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClientClick="return validate(<%=tbName.ClientID%>, <%=ddlBranch.ClientID%>)" />
</form>
et
Dans la page aspx.cs
protected void Page_Load (object sender, EventArgs e)
{
Page.RegisterClientScriptBlock("MyScript", "<SCRIPT Language='JavaScript' src='validation.js'></SCRIPT>");
btnSubmit.Attributes.Add("onclick", "return validate()");
}
Maintenant, son erreur donnant "erreur d'exécution Microsoft JScript: Objet requis". Je ne suis pas capable de savoir où je me suis trompé.
@OP: Vous pouvez le déplacer vers son propre fichier si vous faites les ID des éléments pour valider les paramètres de la fonction, par exemple 'function validate (nameId, branchId)', puis utilisez 'nameId' au lieu de' "<% = tbName.ClientID%> "' et 'branchId' au lieu de' "<% = ddlBranch.ClientID%>" '(notez que vous n'utilisez plus les guillemets; par exemple. 'document.getElementById (nameId) .value'). Ensuite, le script de votre page ASPX peut appeler la fonction 'validate' dans le fichier externe comme suit:' validate ("<% = tbName.ClientID%>", "<% = ddlBranch.ClientID%>") '. –
@ T.J. - +1 Bonne solution, tant que ce ne sont que quelques champs qui seraient parfaitement gérables. –
@ T.J. - Ajouté à la réponse afin que le formatage soit plus facile à lire - Si vous changez d'avis à partir d'un commentaire et que vous répondez vous-même, je vais supprimer, juste @me je le sais! –