这个问题已经这个问题之前,有人问: Prevent multiple clicks and ActiveForm submission in Yii 2.0.10Yii2活性形式提交事件两次调用
症状
我有id
活性形式等于surasGo
。我使用Jquery附带了submit
事件来处理提交之前的一些任务。我注意到事件函数中的任何alert
函数都会产生两次。我检查了网页的HTML源代码,我发现下面的代码片段:
...
jQuery('#surasGo').yiiActiveForm([], []);
});</script></body>
以前的片段前方有链接的JavaScript文件包含我的代码:
$('#surasGo').submit(function(e){
e.preventDefault();
suraId = $('#surasId').val()*1;
verseId = $('#versesId').val()*1;
if (!isNaN(verseId*1) && verseId !== 0){
window.location = '/verses/view/'+verseId;
}
else if (!isNaN(suraId) && suraId !== 0){
window.location = '/view/'+suraId;
}
else{
alert(tError+"\n"+tQAccessError);// this alerted twice for example
}
return false;
});
我已经试过
我意识到第一个片段jQuery('#surasGo').yiiActiveForm([], []);
可能负责提交事件的双重调用,因为活动表单客户端验证,所以我将'enableClientValidation'=>false
属性添加到活动表单:
<?php $form = ActiveForm::begin(['id' => 'surasGo','enableClientValidation'=>false, 'action'...
但是,表单似乎还是要经过两次提交事件!这种奇怪行为的原因是什么?如何解决?
你可以尝试'$( '身体')上( '提交', '#surasGo',函数(E){})' –
jagsler
@jagsler是的,我已经按照你的建议尝试过了,它工作正常。然而,是什么原因使我的方式'$('#surasGo')。submit(...'重新应用事件两次? – SaidbakR
不知道...有完全相同的问题。永远让我永远找到这个解决方案 – jagsler