Javascript 表单的jQuery验证之后,它会被卡住并继续提交
我有一个注册页面,在一个使用CakePHP框架的网站上使用了DejQuery验证插件。用于提交验证的代码如下所示: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();
$("#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");
}
})) 这个答案对我有用。在我看来,我确实在进行递归调用,只是通过在线查看示例,它似乎是正确的。谢谢只要再看一遍代码。你本质上是说,“当表单提交时,如果它是有效的,就提交表单”。如果你没有进一步的问题,请考虑将其标记为: