У меня есть всплывающая форма диалогового окна jQuery, показанная в iframe на Yii.Если форма проверяется, ее нужно сохранить и закрыть, в противном случае она должна отображаться с ошибками.Однако, пока validateOnChange работает, validateOnSubmit не делает - щелчок на submit просто возвращает результат представления вместо ошибок (или пустого массива).Я не совсем уверен, с чего начать с исправления.
У меня есть эти опции в вызове beginWidget()
:
'enableAjaxValidation'=>true,
'clientOptions' => array(
'validateOnSubmit'=>true,
'validateOnChange'=>true,
'validateOnType'=>false,
),
И я использую этот код для генерации кнопки:
CHtml::ajaxSubmitButton('Submit', 'enter', array('success' => 'afterValidate()'));
Я обнаружил несколько других ссылок, говорящих о проблеме этих двух опций, не работающих вместе: Yii ajaxSubmitButton () с проверкой полей и http://code.google.com/p/yii/issues/detail?id=2008. ОднакоЯ не уверен, что делать с предлагаемым исправлением в последней ссылке:
function afterValidate(form, data, hasError){
if (!hasError) {
$.ajax({
url: '{$postUrl}',
type: 'POST',
dataType: 'json',
data:jQuery(this).parents("form").serialize()
})
.done(function ( response ) {
// my successhandler
})
.fail(function ( xhr, status ) {
// my error handler
});
return false;
}
}
Функция обратного вызова вызывается, но всегда завершается ошибкой, независимо от того, действительны данные или нет.
Итак, как мне реализовать диалоговую форму jQuery в Yii?