【问题标题】:Prevent page being post back if javascript validations fails如果 javascript 验证失败,防止页面被回发
【发布时间】:2013-07-22 06:50:43
【问题描述】:

我在关注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事件validation()函数:

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

验证工作一切正常,但问题是当文本框并且我的验证失败 strong> js 应该 防止页面被回发,但是 js 允许页面被回发 并且我的验证 jst 变成 没用的

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

【问题讨论】:

    标签: c# javascript asp.net validation


    【解决方案1】:

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

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

    【讨论】:

    • 你的答案是写,但我补充的另一件事是: 正如 amit 所说...谢谢你的帮助。
    【解决方案2】:

    您需要对 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();"/>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-05
      • 1970-01-01
      • 2011-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多