【问题标题】:how to intercept a click on a <button> tag and stop the submit?如何拦截对 <button> 标签的点击并停止提交?
【发布时间】:2016-02-26 12:58:24
【问题描述】:

我有一个带有一些按钮标签的表单,其中一个是删除按钮。我想拦截点击并要求确认。 我可以用下面的代码拦截它,但不管我回答什么它都会处理。

HTML:

<button type=submit id=mydelbuttonid value=delete name=deletebutton>Delete</button>

jQuery:

$('button#mydelbuttonid').on("click", function(e) {
  if (confirm('Are you sure you want to delete this record?')) {
    alert('deleting');
  }
  else {
    alert('not deleting');
    event.preventDefault();
    return false;
  }
});

我得到了正确的警报,但记录还是被删除了。

有人知道如何解决这个问题吗?我在互联网上搜索了很长时间,找到了很多&lt;a&gt; 标签的解决方案,但没有找到&lt;button&gt; 标签的解决方案。

【问题讨论】:

  • 顺便说一句,event != e
  • @A.Wolff 这是主要说明。 :)
  • @RajaprabhuAravindasamy Ya 在 FF 上会... :)
  • 尝试绑定到表单的提交而不是按钮的点击

标签: javascript jquery html button confirm


【解决方案1】:

正如@A.Wolff 正确指出的那样,e !== event...

event 更改为e 或反之亦然将允许preventDefault 实际被触发(之后return false 变得多余)。

$('button#mydelbuttonid').on("click", function(e) {
  if (confirm('Are you sure you want to delete this record?')) {
    alert('deleting');
  }
  else {
    alert('not deleting');
    e.preventDefault();
    /*return false;*/
  }
})

【讨论】:

  • 是的,但这只会在不使用全局事件模型的 FF 上成为问题,因此会引发错误。在其他浏览器上,它会按预期工作。我认为应该注意 :) 顺便说一句,return false; 语句在那里是多余的
猜你喜欢
  • 2013-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多