1

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

4 回答 4

5

像这样在函数名之前写return

   <asp:Button ID="btnSave" runat="server" Text="Save" CssClass="buttons"  OnClientClick="return validate()"/>
于 2012-12-28T13:25:43.327 回答
3

如果这是一个 ASP.NET WebForms 应用程序,您真的应该考虑使用 Validator 控件。他们处理您要求的所有客户端逻辑。

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

于 2012-12-28T13:25:53.617 回答
2

如果它的 asp.net 按钮控件添加这个

OnClientClick = "return validate();"

如果是 html 按钮添加这个

onclick = "return validate();"
于 2012-12-28T13:26:09.047 回答
0

Ît 属于您处理事件的方式。请显示 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);
    }
}​

希望这可以帮助。如何将验证功能绑定到按钮非常重要,因为 asp.net 会自行生成大量 javascript(google for asp.net 客户端验证)。

于 2012-12-28T13:30:19.013 回答