使用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;
});

有人有什么想法吗?

更新:我最初将它绑定到一个按钮点击事件,它正在工作,但我想保留submit按钮的[enter]键元素。既然代码有点不合逻辑,那么按下键盘是个更好的主意吗?

我认为您的ajax是在表单最终提交之前对其进行验证的尝试。在这种情况下,只需在提交表单之前解除验证功能的绑定

  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;
});

您提交表单,阻止提交只是为了提交表单,而阻止提交…:-D

最新更新