我关注的是asp文本框:
<asp:TextBox ID="txtPasswrod" runat="server"></asp:TextBox>
在此文本框下面,我显示了错误消息标签,该标签最初一直隐藏,直到文本框的js验证失败为止:
<label id="errorMsg" for="pwd" style="display:none">error</label >
以下是用于文本框验证的js:
function validation()
{
var pwd = document.getElementById("txtPasswrod").value;
if (pwd == null || pwd == "")
{
document.getElementById("error").style.display = 'block';
return false;
}
}
以下是asp按钮,我正在调用其OnClientClick事件:
<asp:Button ID="btnSubmit" runat="server" Text="Submit"
onclick="btnSubmit_Click" OnClientClick="validation()"/>
验证工作正常,但是问题是,当文本框为空并且我的验证失败时,js应该阻止页面回发,但是允许页面回发的js和我的验证jst变得无用。
请告诉我如何防止未通过js验证的页面回发。
最佳答案
您需要在JS脚本中稍作更改。您需要添加.ClientID
,因为您指定的控件是服务器控件。或者,如果您使用的是.net 4.0,则可以像在代码中一样使用ClientIDMode= "Static"
来访问控件。
function validation() {
var pwd = document.getElementById('<%=txtPasswrod.ClientID').value;
if (pwd == null || pwd == "")
{
document.getElementById("errorMsg").style.display = 'block';
return false;
}
}
现在,调用验证方法,如下所示:
<asp:Button ID="btnSubmit" runat="server" Text="Submit"
onclick="btnSubmit_Click" OnClientClick="return validation();"/>
关于c# - 如果JavaScript验证失败,则防止回发页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17781507/