c# - 如果JavaScript验证失败,则防止回发页面

标签 c# javascript asp.net validation

我关注的是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/

相关文章:

c# - 使用 Windows 窗体应用程序在何处存储临时文件

javascript - 在 Google Chrome 中使用内容脚本禁用点击广告

javascript - Array.prototype.concat() 底层

javascript - C#在页面加载完成后下载html字符串

c# - 当 FindFiles 进程完成时发出通知

c# - 如何或者可以访问一组带有代码隐藏的控件或元素?

Asp.net 成员(member)数据库

c# - 使用 runat ="server"访问 HTML 元素中的 foreach 变量

c# - RDotNet 与 R 脚本

javascript - 直接从 Javascript Guacamole 客户端连接到 guacd?