JQuery延迟了.each()

有关如何使用JQuery的延迟方法以及检测所有已更改的表单并将每个表单作为Ajaxpost提交的function的任何想法?

如果我只列出一大堆表单提交但是如果我使用…我可以得到同样的工作

$('form.changed').each(function(){ return $(this).submitWithAjax(); }); 

我正在尝试使用的更完整版本的代码就在这里…… 在JS Fiddle

提前致谢!

而不是“.each()”,使用“.map()”:

 var deferreds = $('form.changed').map(function(i, elem) { return $(this).submitWithAjax(); }); $.when.apply(null, deferreds.get()).then(function() { ... }); 

“$ .when()”事件允许你捆绑一堆延迟对象并等待所有它们成功(或任何失败 – 注意那里的差异)。 它通常允许任意数量的参数,但由于我们有一个数组,我使用了“apply()”。

请注意,我只是轻轻地使用了这些东西,所以请阅读jQuery API文档以仔细检查:-) edit – 在重新阅读您的问题时,我可能误解了您。

将更改事件委派给表单字段可以解决您的问题。

 $('form').delegate('input[type=text], input[type=radio], select', 'change', function(evt){ // your submits here console.log('changed!') });