使用javascript和ASP.NET无法验证我的ASP文本框
我只是想问为什么我的asp文本框的表单验证不起作用。这应该就像当用户没有在文本框中输入文本时,段落标记中的描述将显示为请输入文本。但它不起作用。请帮我解决这个问题 以下是javascript代码:使用javascript和ASP.NET无法验证我的ASP文本框,javascript,c#,jquery,asp.net,Javascript,C#,Jquery,Asp.net,我只是想问为什么我的asp文本框的表单验证不起作用。这应该就像当用户没有在文本框中输入文本时,段落标记中的描述将显示为请输入文本。但它不起作用。请帮我解决这个问题 以下是javascript代码: function checkForm() { var errors = []; if ($("#itemBrand").value == "") { errors[0] = "Please input a text!"; } if ($("#itemModel").value == "")
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()"/>
在文本框中添加clientmode=“Static”。否则,.NET平台将生成一个与服务器Id属性不同的Id,并且Jquery选择器无法按预期工作
例如:
<asp:TextBox ID="itemBrand" ClientIDMode="static" runat="server" BackColor="#FFFF66"
BorderColor="Black" BorderWidth="1px" Height="20px" Width="300px">
</asp:TextBox>
在文本框中添加clientmode=“Static”。否则,.NET平台将生成一个与服务器Id属性不同的Id,并且Jquery选择器无法按预期工作
例如:
<asp:TextBox ID="itemBrand" ClientIDMode="static" runat="server" BackColor="#FFFF66"
BorderColor="Black" BorderWidth="1px" Height="20px" Width="300px">
</asp:TextBox>
asp.net服务器控件的客户端id与服务器端id不同
您可以使用clientmode=“Static”
(在.NET 4.0中引入)或使用ClientID
,如下所示,我也尝试重新编写验证函数
function checkForm() {
var success = true;
var itemBrandID = "<%= itemBrand.ClientID %>" ;
if ($("#" + itemBrandID).value == "") {
success = false;
document.getElementById("<%= itemBrandValidate.ClientID %>").innerHTML = "Please input a text!";
}
var itemModelID = "<%= itemModel.ClientID %>" ;
if ($("#" + itemModelID).value == "") {
success = false;
document.getElementById("<%= itemModelValidate.ClientID %>").innerHTML = "Please input a text!";
}
return success;
}
函数检查表(){
var成功=真;
var itemBrandID=“”;
if($(“#”+itemBrandID).value==“”){
成功=错误;
document.getElementById(“”).innerHTML=“请输入文本!”;
}
var itemModelID=“”;
if($(“#”+itemModelID).value==“”){
成功=错误;
document.getElementById(“”).innerHTML=“请输入文本!”;
}
回归成功;
}
同时建议你阅读Rick Strahl在
希望这有帮助 asp.net服务器控件的客户端id与服务器端id不同
您可以使用clientmode=“Static”
(在.NET 4.0中引入)或使用ClientID
,如下所示,我也尝试重新编写验证函数
function checkForm() {
var success = true;
var itemBrandID = "<%= itemBrand.ClientID %>" ;
if ($("#" + itemBrandID).value == "") {
success = false;
document.getElementById("<%= itemBrandValidate.ClientID %>").innerHTML = "Please input a text!";
}
var itemModelID = "<%= itemModel.ClientID %>" ;
if ($("#" + itemModelID).value == "") {
success = false;
document.getElementById("<%= itemModelValidate.ClientID %>").innerHTML = "Please input a text!";
}
return success;
}
函数检查表(){
var成功=真;
var itemBrandID=“”;
if($(“#”+itemBrandID).value==“”){
成功=错误;
document.getElementById(“”).innerHTML=“请输入文本!”;
}
var itemModelID=“”;
if($(“#”+itemModelID).value==“”){
成功=错误;
document.getElementById(“”).innerHTML=“请输入文本!”;
}
回归成功;
}
同时建议你阅读Rick Strahl在
希望这有帮助 您还可以提供此aspx表单的生成HTML输出。您的javascript非常疯狂。如果从未设置索引0,则有和数组中从未正确初始化的错误(错误[0]!=null)实际上是未定义的。如果您有母版页,请尝试直接在jQuery代码中与呈现的
asp:TextBox
id
。检查Chrome开发者工具并检查元素。你也可以提供这个aspx表单的生成HTML输出。你的javascript非常疯狂。如果从未设置索引0,则有和数组中从未正确初始化的错误(错误[0]!=null)实际上是未定义的。如果您有母版页,请尝试直接在jQuery代码中与呈现的asp:TextBox
id
。签入Chrome developer tools并检查该元素。即使我添加了ClientMode,它仍然不工作。@BoomClick,您在浏览器的开发工具中看到任何错误吗?即使我添加了ClientMode,它仍然不工作。@BoomClick,您在浏览器的开发工具中看到任何错误吗?