在jQuery验证表单后,它会卡住并继续提交

时间:2014-11-07 18:25:41

标签: javascript php jquery forms cakephp

我有一个注册页面,在使用CakePHP框架的网站中使用de JQuery Validation插件。使用验证提交的代码如下所示:

$("#ClienteRegistroForm").submit(function(event){
       event.preventDefault();

       console.log("try submit");           

       if($(this).valid())
       {
           $(this).submit();
           console.log("submitting form");

       }

   });

页面中的提交按钮将数据作为POST发送到PHP文件。我遇到的问题是,当它验证并处理该行时:

  

$(本).submit()

它会继续多次提交表单并被卡住。控制台日志显示此行为,以下是控制台打印的样子:

enter image description here

页面在行为上保持冻结状态,php脚本永远不会执行。该脚本应仅用于验证表单,并让它提交并将POST数据发送到php文件。

关于为什么会发生这种情况的任何想法?即使我包含

  

event.preventDefault()

3 个答案:

答案 0 :(得分:1)

你在submit()内进行submit(),使函数递归。尝试在提交按钮本身的#ClienteRegistroFormclick()创建初始事件处理程序。像

这样的东西
$("#ClienteRegistroForm input[type='submit']").click(function(event){
  // code here
})

答案 1 :(得分:1)

你在提交中调用sumbit,所以这是一个无限循环。尝试使用onclick而不是按钮。

$(document).on("click", "#ClienteRegistroForm input[type='submit']", function(event){
   event.preventDefault();
   var form = $(this).closest("form");

   console.log("try submit");           

   if(form.valid())
   {
       form.submit();
       console.log("submitting form");

   }

});

答案 2 :(得分:0)

你正在做一个递归调用提交,发生了什么应该发生的事情,你必须尝试另一种方法。