我有一个形式密集的网站。我使用以下插件:
jquery.form
jquery.validate
表格也是动态加载的(通过ajax)
几乎所有表单都是通过ajax提交的,使用jquery.form ajaxForm()
或ajaxSubmit()
- 在验证插件的submitHandler
中使用时。
所以基本上每次我将一个表单加载到我的页面时,我需要设置validate()插件,ajaxForm ..现在我还想编写一些代码来防止双重提交(即,提交后禁用提交按钮,直到获取响应)。所有这些似乎太样板,现在为了防止双重提交,我需要在我的网站上查看每个表单(正如我所说,有很多)。
我想以某种方式使用委托事件将这些绑定为默认行为。 所以问题是:是否可以在委托提交事件上使用.preventDefault()?例如:
$(document).on("submit", ".my-form", function(event) {
event.preventDefault(); // works?
// and now I can ajax submit if the form is valid ?
// and disable the submit button? or apply any settings to all my forms?
});
对我来说有点不舒服,因为我不确定这是否会以跨浏览器的方式禁用提交。我的意思是,浏览器实际上等待表单提交,直到提交事件在DOM树中一直冒泡?