Javascript 使用yii2提交两次Ajax表单
我环顾四周,其他类似的帖子都没有帮到我。我在Javascript 使用yii2提交两次Ajax表单,javascript,php,ajax,yii,yii2,Javascript,Php,Ajax,Yii,Yii2,我环顾四周,其他类似的帖子都没有帮到我。我在yii2和jQuery中构建了一个基于AJAx的表单,它似乎提交了两次表单 我的表格: $form = ActiveForm::begin([ 'id' => 'company_form', 'ajaxDataType' => 'json', 'ajaxParam' => 'ajax', 'enableClientValidation' => false ]); 我的JS代码: $(docume
yii2
和jQuery
中构建了一个基于AJAx
的表单,它似乎提交了两次表单
我的表格:
$form = ActiveForm::begin([
'id' => 'company_form',
'ajaxDataType' => 'json',
'ajaxParam' => 'ajax',
'enableClientValidation' => false
]);
我的JS代码:
$(document).ready(function() {
/* Processes the company signup request */
$('#company_form').submit(function() {
signup('company');
return false;
});
})
function signup(type) {
var url;
// Set file to get results from..
switch (type) {
case 'company':
url = '/site/company-signup';
break;
case 'client':
url = '/site/client-signup';
break;
}
// Set parameters
var dataObject = $('#company_form').serialize();
// Run request
getAjaxData(url, dataObject, 'POST', 'json')
.done(function(response) {
//.........
})
.fail(function() {
//.....
});
// End
}
标准提交不应该被我输入返回:false而停止吗
为什么要提交两次
更多信息:然而奇怪的是,这似乎只是第一次发生;如果我再次点击提交,它只提交一次;但是如果我重新加载页面并点击submit,它将再次执行两次操作。您可能需要更改代码,如下所示:
$('#company_form').submit(function(e) {
e.preventDefault();
e.stopImmediatePropagation();
signup('company');
return false;
});
常见解决方案
下一个JS将与'enableClientValidation'
的任何状态一起工作:
$('#company_form').on('beforeSubmit', function (e) {
signup('company');
return false;
});
它在firebug中是否发送了两次ajax请求?@AliMasudianPour是的,当我观看控制台时,请求会发送两次。然而奇怪的是,这似乎只是第一次发生;如果我再次点击提交,它只提交一次;但是如果我重新加载页面并点击submit,它将再次执行两次。成功了!:)谢谢!我也有同样的问题。表单具有'enableAjaxValidation'=>true,'validateOnSubmit'=>true
,但即使使用您提供的代码,表单仍会提交两次。只有在没有错误时才提交两次。