繁体   English   中英

验证失败时停止触发asp.net btnsave.click事件

[英]stop asp.net btnsave.click event from firing when validation fails

我有此Java脚本验证功能,如果文本框的文本为空,则在客户端单击btnsave时将触发此消息,然后显示一个消息框,并且焦点位于文本框上,但我似乎无法阻止该页面在验证失败,我遗漏了一些东西。 这是我的代码

function validate() 
  {
      var itemscanned;
      itemscanned = document.getElementById('txtItemCode');
      if (itemscanned.value == '') 
      {
          alert("Plz Enter Item Code");
          return false;
         itemscanned.focus
      }
      else 
      {
          alert(itemscanned.value);
      }
  }

像这样在函数名称前写返回

   <asp:Button ID="btnSave" runat="server" Text="Save" CssClass="buttons"  OnClientClick="return validate()"/>

如果这是ASP.NET WebForms应用程序,那么您确实应该考虑使用Validator控件 它们处理您要求的所有客户端逻辑。

如果您使用的是MVC,则还有一种方法可以在客户端进行模型验证

如果其asp.net按钮控件将其添加

OnClientClick = "return validate();"

如果是html按钮,请添加此

onclick = "return validate();"

它属于您处理事件的方式。 请显示asp标记和javascript事件的绑定。

您可以尝试使用javascript停止事件传播:

event.stopPropagation();

在此处阅读有关内容: https : //developer.mozilla.org/en-US/docs/DOM/event.stopPropagation

注意:您必须将事件作为validate函数的参数获取:

function validate(event) {

    var itemscanned;    
    itemscanned = document.getElementById('txtItemCode');
    if (itemscanned.value == '') {
        alert("Plz Enter Item Code");
        event.stopPropagation();
        itemscanned.focus
        return false;
    }
    else
    {
        alert(itemscanned.value);
    }
}​

希望这可以帮助。 绑定按钮的validate函数非常重要,因为asp.net会自己生成很多JavaScript(用于asp.net客户端验证的Google)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM