Javascript 表单的jQuery验证之后,它会被卡住并继续提交

Javascript 表单的jQuery验证之后,它会被卡住并继续提交,javascript,php,jquery,forms,cakephp,Javascript,Php,Jquery,Forms,Cakephp,我有一个注册页面,在一个使用CakePHP框架的网站上使用了DejQuery验证插件。用于提交验证的代码如下所示: $("#ClienteRegistroForm").submit(function(event){ event.preventDefault(); console.log("try submit"); if($(this).valid()) { $(this).submit();

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

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

       console.log("try submit");           

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

       }

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

$(this.submit())

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

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

你知道为什么会这样吗?即使我包括

event.preventDefault()


您正在
submit()
内部执行一个
submit()
,使函数递归。尝试将
#ClienteRegistroForm
上的初始事件处理程序设置为提交按钮本身上的
单击()。差不多

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

您正在对submit执行递归调用,正在发生的事情就是应该发生的事情,您必须尝试另一种方法。

您在submit中调用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");

   }

}))

这个答案对我有用。在我看来,我确实在进行递归调用,只是通过在线查看示例,它似乎是正确的。谢谢只要再看一遍代码。你本质上是说,“当表单提交时,如果它是有效的,就提交表单”。如果你没有进一步的问题,请考虑将其标记为: