我的ASP文本框的验证无法使用javascript和ASP.NET

时间:2017-08-29 14:28:04

标签: javascript c# jquery asp.net

我只想问为什么我的asp文本框的表单验证无效。应该就像用户没有在文本框中输入文本一样,段落标签中的描述将显示为请输入文本。但它没有用。请帮我解决这个问题。

以下是javascript代码:

function checkForm() {
var errors = [];

if ($("#itemBrand").value == "") {
    errors[0] = "Please input a text!";
}

if ($("#itemModel").value == "") {
    errors[1] = "Please input a text!";
}

if (errors.length > 0) {
    if (errors[0] != null) {
        document.getElementById("itemBrandValidate").innerHTML = errors[0];
    }

    if (errors[1] != null) {
        document.getElementById("itemModelValidate").innerHTML = errors[1];
    }
 return false;
}
return true;
}

这是aspx:

<asp:TextBox ID="itemBrand" runat="server" BackColor="#FFFF66" 
 BorderColor="Black" BorderWidth="1px" Height="20px" Width="300px">
 </asp:TextBox><br />
                    <p  id="itemBrandValidate"></p>

 <asp:TextBox ID="itemModel" runat="server" BackColor="#FFFF66" 
 BorderColor="Black" BorderWidth="1px" Height="20px" Width="300px">
 </asp:TextBox><br />
                    <p  id="itemModelValidate"></p>

 <asp:Button ID="Button1" runat="server" CssClass="submitButton" Text="Save 
  Item" OnClick="Button1_Click" OnClientClick="return checkForm()"/>

2 个答案:

答案 0 :(得分:0)

添加ClientIdMode =&#34;静态&#34;在你的文本框上。否则.NET平台生成的Id与服务器ID属性不同,并且您的Jquery选择器未按预期工作。

例如:

<asp:TextBox ID="itemBrand" ClientIDMode="static" runat="server" BackColor="#FFFF66" 
 BorderColor="Black" BorderWidth="1px" Height="20px" Width="300px">
 </asp:TextBox>

答案 1 :(得分:0)

asp.net服务器控件的客户端ID与服务器端ID不同。

您可以使用libcspice.a(在.NET 4.0中引入),也可以使用ClientIDMode = "Static",如下所示,我也尝试重新编写您的验证功能。

ClientID

同时建议您阅读Rick Strahl在A generic way to find ASP.NET ClientIDs with jQuery

上发表的这篇优秀文章

希望这有帮助!