ajaxOnValidation и ajaxSubmitButton в Yii не работают вместе - PullRequest
1 голос
/ 26 января 2012

У меня есть всплывающая форма диалогового окна 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...