Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 每次提交表单时,ajax调用的数量都会增加_Javascript_Php_Ajax_Forms_Twitter Bootstrap - Fatal编程技术网

Javascript 每次提交表单时,ajax调用的数量都会增加

Javascript 每次提交表单时,ajax调用的数量都会增加,javascript,php,ajax,forms,twitter-bootstrap,Javascript,Php,Ajax,Forms,Twitter Bootstrap,我使用下面的代码使用ajax提交我的表单 首先:ajax第一次没有调用,然后我不得不再次单击它。第二次单击后,将调用ajax.. 第二:每次我提交,ajax调用的数量都会增加 例如,如果我第一次提交它,它将被调用一次。 然后,如果我第二次点击它,它会叫它两次。等等,三次,它叫它三次 下面是我的代码。请帮帮我。。我是jQuery的初学者 我在表单提交时使用了引导验证 $(“#订阅表单”)。验证( { 规则: { 子电子邮件: { 要求:正确, 电子邮件:真的 } }, submitHandler

我使用下面的代码使用ajax提交我的表单

首先:ajax第一次没有调用,然后我不得不再次单击它。第二次单击后,将调用ajax..

第二:每次我提交,ajax调用的数量都会增加

例如,如果我第一次提交它,它将被调用一次。 然后,如果我第二次点击它,它会叫它两次。等等,三次,它叫它三次

下面是我的代码。请帮帮我。。我是jQuery的初学者

我在表单提交时使用了引导验证

$(“#订阅表单”)。验证(
{
规则:
{
子电子邮件:
{
要求:正确,
电子邮件:真的
}
},
submitHandler:函数(表单)
{//警报(“dfd”);
$('#subscribeBtn')。在('click',函数(){
var$btn=$(本);
$btn.按钮(“加载”);
//警报(“dfadsfs”);
$.ajax({
类型:$(form).attr('method'),
url:BASEURL+“联系人/订阅”,
数据:$(表单).serialize(),
成功:功能(状态)
{
$('#subinputid').val('');
如果(状态==1)
{
警报(“您已成功订阅”);
}
其他的
{
提醒(“您已订阅alerady。”);
}
控制台日志(状态);
//警报(状态);
返回false;
} 
});
setTimeout(函数(){
$btn.按钮(“重置”);
}, 1000);
});
}
});

按如下方式在行前解除绑定:

$('#subscribeBtn').unbind('click');
$('#subscribeBtn').on('click', function () {
     var $btn = $(this);

这很好,为什么在调用validate时会发生这种情况,单击会一次又一次地绑定,所以请解除单击事件的绑定并再次绑定事件。

这是因为您将AJAX调用绑定到订阅按钮,但每当尝试验证时,您都会创建一个新的单击事件触发器。因此,随着验证次数的增加(由表单提交触发),越来越多的单击处理程序绑定到按钮,从而导致AJAX调用的重复。那么现在,我是否应该将单击函数与AJAX调用分离开来?您可能需要更改逻辑。您当前的逻辑是验证表单->如果有效,则绑定单击处理程序。那么,将验证绑定到click handler,然后如果有效,就提交表单?(换句话说)非常感谢。现在可以工作了:)Ajax召回现在还没有发生。但正如我所描述的,这是第一次,按钮是不可点击的。你能帮我解决这个问题吗,,,我已经厌倦了寻找解决方案。这正是你现在面临的问题吗?第一次单击有效,然后按钮未启用?不,这是第一次,ajax没有调用,然后我必须再次单击它。第二次单击后,调用ajax。您是否修复了它?为什么使用setTimeout函数?你能评论一下并尝试一下吗?不,我仍然困在那个问题上。该超时用于ajax调用竞争。如果我对它进行评论,那么加载将继续,为了使该按钮再次工作,我必须重新加载页面。