【发布时间】:2016-06-03 15:58:02
【问题描述】:
我想要实现的是跟踪表单提交。 但是由于我们对提交按钮使用了许多变化,我想更改我当前的代码:
$(document).on('click','input[type="submit"], button[type="submit"]',function(){
到普遍的东西。我相信最好的方法是$("form")-annotation。
问题是,例如,如果 form 上有一个 ajax 脚本,它会被我的 additional 脚本代码阻止。
基本上我想要实现的是两全其美。
所以第一个是网站目前拥有的(虽然不是每个网站):
$("form").submit(function () {
// ....do something, maybe ajax submit of the form.....
});
以及我想要添加的附加,而无需编辑网站中已有的任何当前脚本:
$("form").submit(function () {
$.getJSON("....");
});
我的解决方案应该是第二个脚本(附加)不会干扰任何其他表单脚本。
一个想法
使用jQuery addClass在当前页面的表单中添加一个类。
对此有什么解决方案?
【问题讨论】:
-
所有表单都没有id?
-
@RatHat 因为这将是“一刀切”的解决方案,它不能使用 ids。当然,如果我可以通过 jquery 向表单添加一个独特的类?
-
您似乎已经尝试过了...不行吗?你在
additional-Callback 里面做什么?只是getJSON电话? -
我认为你应该使用
Promises或jQuery 的Deferred。 -
@Ciprianis 我不知道这与 jQuery 的延迟承诺有什么关系。这个问题是关于你是否能找到一个足够强大的钩子来“接管”
stopImmediatePropagation并且以一种不引人注目的方式这样做 - 一种被通知事件的方式但实际上不会干扰其他处理程序。
标签: javascript jquery ajax forms