День добрый.
Есть форма, которая отправляется аяксом. Вот собственно код кнопки:
<?php
$id='applications-form_submit_' . rand(1, 255);
echo CHtml::ajaxSubmitButton($model->isNewRecord ? UserModule::t('Create') : UserModule::t('Save'), Yii::app()->request->url, array(
'type' => 'post',
'dataType' => 'json',
'beforeSend'=>'function(){$("body").undelegate("#'.$id.'","click");}',
'success' =>
'js:function (e) {
clear_errors();
if (e.status=="success"){
if (e.redirect=="here"){
notification(e.message);
}
else window.location.replace(e.redirect);
} else {
$.each(e, function(key, val) {
$("#user-form #"+key+"_em_").text(val+" ");
$("#user-form #"+key+"_em_").parent(".error_wrapter").addClass("error");
$("#user-form #"+key+"_em_").css("display","block");
});
}
}',
), array(
'id' => $id,
));?>
Собственно проблема - идет 2 запроса к контроллеру вместо 1го.
Что пробовал делать:
-
Добавить форме onsubmit="return false;"
-
Добавить preventDefault() для предотвращения сабмита.
-
Изменить action на левый.
Все это не помогло. 2 запроса идет не из за формы а именно из за кнопки.
Что пробовал делать с кнопкой:
-
Добавить $(‘body’).unbind() в beforeSave и в success.
-
Добавить undelegate() соответственно туда же.
Ничего не помогает. Собственно всегда так делал формы, и никогда такой проблемы не было. Да и на 1.1.13 такое работает, сейчас же 1.1.14, может проще вернуть старую версию?