使用jquery事件提交表单的无限循环

当我尝试捕获表单提交时,代码陷入循环。 目的是在表单出来之前替换表单的值。

$('form').submit(function(e){ e.preventDefault(); $.ajax({ type: "POST", url: 'convert.asp', data: $('form').serialize(), success: function(response){ $('input[name="field1"]').val(response); $('form').submit(); } }); return false; }); 

有没有人有任何想法?

更新:我最初将它绑定到按钮单击事件并且它正在工作但我想保留提交按钮的[enter]键元素。 看到代码有点不合逻辑,抓住按键会更好吗?

我假设您的ajax是在最终提交之前validation表单的尝试。 在这种情况下,只需在提交表单之前取消绑定validationfunction。

  success: function(response){ $('input[name="field1"]').val(response); // Add unbind to remove validations $('form').unbind().submit(); } 

在成功中,您触发另一个提交…

 $('form').submit(function(e){ e.preventDefault(); // redundant, you return false in the end. <<<=== $.ajax({ type: "POST", url: 'convert.asp', data: $('form').serialize(), success: function(response){ $('input[name="field1"]').val(response); $('form').submit(); // <=== delete this! <<<<================= } }); return false; }); 

您提交表单,阻止提交仅提交表单,以防止提交… 😀