1

我有一个提交表单的按钮

该按钮已经在页面上。

所以如果我想阻止提交,我可以这样做:

$(".myBtn").on('click',function (e){ e.preventDefault();.....});

但是如果将来要注入按钮,我可以这样做:

$("body").on('click',".myBtn",function (e){ e.preventDefault();.....});

但它不起作用并且表单提交。

在处理程序未直接附加到元素本身而是附加到委托目标的情况下,如何实现我的目标?

4

1 回答 1

1

您永远不应将单击处理程序附加到提交按钮以防止提交表单。总是绑定表单的“提交”事件——如果用户按下输入而不是点击来提交表单怎么办?

$(document).on('submit','#your-form',function(e) {
 e.preventDefault();
});

至于回答您的直接问题,您的代码应该可以正常工作。确保您的按钮具有正确的类名,并确保在您单击可能导致 e.preventDefault() 被忽略的按钮之前或之后,页面上没有发生 JS 错误。

于 2013-03-12T14:05:19.090 回答