1

我关注了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 button,我正在调用它的OnClientClick事件validation()函数:

<asp:Button ID="btnSubmit" runat="server" Text="Submit" 
     onclick="btnSubmit_Click" OnClientClick="validation()"/>

验证工作正常,但问题是当文本框并且我的验证失败时,js应该阻止页面被回发,但是js 允许页面被回发并且我的验证 jst 变得无用

请告诉我如何在 js 验证失败时防止页面回发

4

2 回答 2

5

修改validation()为,如果返回return validation(),这将停止页面发布。functionfalse

<asp:Button ID="btnSubmit" runat="server" Text="Submit" 
     onclick="btnSubmit_Click" OnClientClick="return validation();"/>
于 2013-07-22T06:54:36.847 回答
4

您需要对 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();"/>
于 2013-07-22T07:11:46.637 回答