Я использую Yii ajaxSubmitButton() для отправки формы. Кроме того, я установил параметр enableAjaxValidation в значение true для проверки соответствующих текстовых полей.
Что я могу сделать:
- Проверяйте поле, когда фокус покидает его, асинхронно.
- Вызов метода на стороне сервера, когда кнопка нажата, асинхронно.
Проблема заключается в том, что я не знаю, как выполнить проверку полей при нажатии кнопки отправки и, если модель проверена, выполнить частичную визуализацию на стороне клиента.
Если я переопределяю событие "success" в ajaxSubmitButton, я получаю частичный рендеринг, но я не могу поддерживать проверку модели.
Любая помощь?
ИЗМЕНИТЬ
Спасибо за ответ,
Флаг validateOnSubmit уже установлен, и модель будет правильно проверена, если событие "success" не было установлено.
Когда ajaxSubmitButton выглядит так:
<?php echo CHtml::ajaxSubmitButton( 'Send',
CHtml::normalizeUrl(array('site/ajaxIndexSubmit')),
array(
'error'=>'js:function(){
alert(\'error\');
}',
'beforeSend'=>'js:function(){
alert(\'beforeSend\');
}',
'success'=>'js:function(data){
alert(\'success, data from server: \'+data);
}',
'complete'=>'js:function(){
alert(\'complete\');
}',
//'update'=>'#where_to_put_the_response',
)
);
?>
предупреждение ( "успех" ) выведет строку, соответствующую проверке модели. Как только у меня есть эта строка, какая логика должна быть вызвана на стороне клиента?
Причиной переопределения обработчика javascript "success" является получение частичного рендеринга с сервера, отличного от проверки модели. Я хочу обе вещи: проверка и частичное рендеринг.