ActiveForm: как запретить отправку формы после успешной ajax валидации?
Добавлено: 2015.03.17, 08:00
Суть в чем:
есть форма многоразового использования. Данные из неё нужно сохранять в базе, не покидая страницы, предварительно валидировав и показав ошибки.
Решил оставить валидацию только ajax, по событию submit. Идея в том, что на стороне сервера при ajax запросе и валидации без ошибок запись будет автоматически сохранена в БД, а JS, получив ответ о корректной валидации, будет знать, что данные сохранены, выдаст соответствующее сообщение и будет готов к приему новых данных.
Так вот, как не дать yiiActiveForm засабмитить форму? Пробовал повесить обработчик на событие submit формы, проверяя
Если просто вернуть false - то при следующем сабмите формы уже никакой валидации не происходит, форма отправляется напрямую.
Если установить data.submitting = data.validated = false, то форма сабмитится нон-стоп.
Как победить?
есть форма многоразового использования. Данные из неё нужно сохранять в базе, не покидая страницы, предварительно валидировав и показав ошибки.
Решил оставить валидацию только ajax, по событию submit. Идея в том, что на стороне сервера при ajax запросе и валидации без ошибок запись будет автоматически сохранена в БД, а JS, получив ответ о корректной валидации, будет знать, что данные сохранены, выдаст соответствующее сообщение и будет готов к приему новых данных.
Так вот, как не дать yiiActiveForm засабмитить форму? Пробовал повесить обработчик на событие submit формы, проверяя
Код: Выделить всё
$('#Enquire').on('submit', function(){
var data = $(this).data('yiiActiveForm')
if (data.submitting && data.validated) {
// здесь движок пытается отправить уже валидированные данные.
}
});
Если установить data.submitting = data.validated = false, то форма сабмитится нон-стоп.
Как победить?