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

时间:2012-12-28 13:17:02

标签: javascript asp.net validation

我有这个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);
      }
  }

4 个答案:

答案 0 :(得分:5)

在函数名之前写回程

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

答案 1 :(得分:3)

如果这是一个ASP.NET WebForms应用程序,那么你真的应该考虑using the Validator controls。它们处理您要求的所有客户端逻辑。

如果您使用的是MVC,还可以使用model validation on the client side

答案 2 :(得分:2)

如果它的asp.net按钮控件

,请添加它
OnClientClick = "return validate();"

如果是html按钮添加此

onclick = "return validate();"

答案 3 :(得分:0)

Ît属于你如何处理事件。请显示asp标记和javascript事件的绑定。

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

event.stopPropagation();

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

注意:您必须将事件作为验证功能的参数:

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);
    }
}​

希望这会有所帮助。如何绑定验证功能按钮是非常重要的,因为asp.net自己生成了很多javascript(谷歌用于asp.net客户端验证)。