javascript - 使用 jQuery 防止回发并运行 OnClick

标签 javascript c# jquery asp.net

我正在尝试验证文本框并单击 asp.net 的按钮。

<asp:TextBox ID="txtEmail" Placeholder="E-mail" runat="server"></asp:TextBox>
<asp:Button ID="btnLogin" OnClick="btnLogin_Click" runat="server" Text="Login" />

这里是一个 jQuery 代码,它验证 TextBox,然后触发 OnClick 方法:

var al = document.getElementById('<%=lblAlert.ClientID%>');
var email = document.getElementById('<%=txtEmail.ClientID%>');
var msg = null;
$(document).ready(function () {
  $('#<%=btnLogin.ClientID%>').on('click', function (e) {
      if (email.innerText == '') {
          msg = 'Please! enter email address.';
          al.innerText = msg;
      }
      else {
          $('#<%=btnLogin.ClientID%>').click();
      }
  });
});

编辑:

OnClick方法是:

protected void btnLogin_Click(object sender, EventArgs e)
{
  // some code
}

最佳答案

您应该在需要时使用 event.preventDefault() 取消点击事件。

$(document).ready(function () {
  $('#<%=btnLogin.ClientID%>').on('click', function (e) {
      if (email.innerText == '') {
          msg = 'Please! enter email address.';
          al.innerText = msg;
          e.preventDefault();
      }
  });
});

验证成功无需再次调用click。

关于javascript - 使用 jQuery 防止回发并运行 OnClick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47377118/

相关文章:

javascript - Ajax Loader 和链式选择框

javascript - jQuery addClass 到具有与 Waypoints 相同类名的元素

javascript - 当 HTML 下拉菜单上的系统下拉菜单变得可见或模糊时,是否会调用任何操作?

javascript - $(this).addClass() 不起作用

javascript - Charts.js 动态报价

javascript - <a>-标签名称属性在 IE8 中不起作用

javascript - 向网站添加缩略图

javascript - 使用 Google Analytics 跟踪个人资料页面上的访问情况

c# - 计算不同行中不同列之间的差异

c# - 从 try{} catch{} 访问变量