Этот вопрос был задан до этого вопроса: Prevent multiple clicks and ActiveForm submission in Yii 2.0.10Yii2 активная форма отправить событие вызывается дважды
Симптомы
У меня есть активная форма с id
равна surasGo
. Я приложил submit
событие, используя JQuery для обработки некоторых задач перед отправкой. Я заметил, что любая функция alert
в функции события создается дважды. Я проверил источник страницы HTML, и я нашел следующие фрагменты:
...
jQuery('#surasGo').yiiActiveForm([], []);
});</script></body>
перед предыдущим фрагментом есть связанные файл яваскрипт содержит мой код:
$('#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'...
Тем не менее, форма по-прежнему, кажется, подвергается отправке события дважды! В чем причина этого странного поведения и как его решить?
Вы можете попробовать '$ ('тело') на ('Submit', '#surasGo', функция (е) {})' –
jagsler
@jagsler Да, я попробовал это, как вы сказали, и работает отлично.Однако, в чем причина, которая делает мой путь $ ('# surasGo'). Submit (... «повторное применение события дважды? – SaidbakR
Не знаю ... имела ту же самую проблему. Принял меня навсегда, чтобы найти это решение . – jagsler