检测表单submit()没有多个事件监听器?

时间:2014-04-04 15:30:57

标签: javascript jquery

我有一个网络应用程序,我试图尽可能快地运行,其中一种方法是减少我附加的事件监听器的数量。

我有很多表格(大约12个)。我目前检查他们是否提交:

$('#form-id').on('submit', function(){
    //actions here
});

表格。有没有办法可以做到这一点,但只提供一个听众提交?然后根据表单ID执行switch语句来决定要执行的操作?

3 个答案:

答案 0 :(得分:3)

对所有选定表单使用submit事件的委托。 $(this)将是当前的表单。

$(document).on("submit", "form", function () {  
   // actions here
   // $(this).something...
   return false;
});

return false用于防止默认的浏览器行为。

答案 1 :(得分:2)

使用事件委托

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

这只会为文档添加一个监听器,只要提交表单就会调用该监听器。

答案 2 :(得分:0)

您可以使用

$('form').on('submit', function() {
   //you can use  $(this).attr('id') to get id of submitted form
}

捕获所有表单的提交事件。