我寫了一個簡單的JavaScript函數在一個aspx頁面微軟JScript運行時錯誤:所需的對象
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;
}
}
一切正常驗證到各個領域。 後來我將它鏈接到像aspx頁面一樣的外部js文件。
頭RUNAT = 「服務器」>
SCRIPT SRC = 「validation.js」 類型= 「文本/ 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>
和
在aspx.cs頁面
保護無效的Page_Load(對象發件人,EventArgs的)
{
Page.RegisterClientScriptBlock("MyScript", "<SCRIPT Language='JavaScript' src='validation.js'></SCRIPT>");
btnSubmit.Attributes.Add("onclick", "return validate()");
}
現在,它給錯誤的 「Microsoft JScript運行時錯誤:所需的對象」。
我無法知道我出錯的地方。
@OP:如果你使用元素的ID來驗證函數的參數,例如'function validate(nameId,branchId)',然後使用'nameId'而不是''<%',你可以將它移動到它自己的文件中。 = tbName.ClientID%>「'和'branchId'而不是''<%= ddlBranch.ClientID%>」'(注意不再使用引號;例如'的document.getElementById(填充NameID).value')。然後,ASPX頁面中的腳本可以像這樣調用外部文件中的validate函數:'validate(「<%= tbName.ClientID%>」,「<%= ddlBranch.ClientID%>」)。 – 2010-04-20 12:25:43
@ T.J。 - +1好的解決方案,只要它只有幾個可以完美管理的領域。 – 2010-04-20 12:27:39
@ T.J。 - 增加了答案,使格式更容易閱讀 - 如果您從評論改變主意併發布自己的答案,我會刪除,只是@我所以我知道! – 2010-04-20 12:48:29