递归jQuery提交函数不提交表单

时间:2011-05-16 20:13:48

标签: javascript jquery recursion form-submit

我需要在单击提交按钮之后以及实际提交表单之前运行一些代码。 我已经删除了代码,只留下了向您展示问题所需的部分。 我需要代码做的是进入提交函数,但不是提交表单再次调用该函数。 表单应仅在第二次迭代中提交。 除了它没有。代码完全按照原样执行,但表单最终没有提交。

如果有人能解释原因,我将不胜感激。

这是代码(simplr-reg是表单的名称):

<script>

var reallySubmit = false;

$(‘#simplr-reg’).submit(function(event)
{    
   if (false == reallySubmit)
   {
      reallySubmit = true;
      $(‘#simplr-reg’).submit(); 
      event.preventDefault();
      return false; 
   }
   else
   {
      return true;
   }
});

</script>

2 个答案:

答案 0 :(得分:4)

$("#simplr-reg").submit(); 

这就是说“在jQuery选择上调用submit方法”。你有一个绑定到选择的jQuery submit处理程序。由于您已经在jQuery选择上触发了事件,因此也会触发jQuery处理程序。

如果在本机DOM表单对象(提交处理程序中的this)上触发事件,则不会触发jQuery处理程序,因此您不会绕圈。调用form.submit方法:

this.submit();

答案 1 :(得分:3)

将其从“提交”事件更改为“点击”事件并将其附加到按钮本身而不是表单?

ETA:请务必在未提交的案件中“返回虚假”。

$("#simplr-reg-submit").click(function()
{    
      alert("1st iteration");
      $("#simplr-reg").submit();
       return false;
});