Есть форма.
ActiveForm::begin([
'action' => ['myAction'],
'enableAjaxValidation' => true,
'enableClientValidation' => true,
]);
Сделал отправку при submit`е через ajax.
$.ajax({
url: form.attr('action'),
data: form.serialize(),
method: form.attr('method')
}).done(function(data) {
if (data == "success") {
//все ок, обрабатываем
} else {
//перебираем все ошибки и показываем их в форме
$.each(data, function(key, val) {
$("#"+key).after("<div class=\"help-block\">"+val+"</div>");
$("#"+key).closest(".form-group").addClass("has-error");
});
}
});
Но клиентская валидация тоже пишет в форму сообщение об ошибке. И получается вот так:
В моем случае клиентская валидацию проходит после моего запроса и проверить на наличие ошибки от клиента не получается.
Хотелось бы сначала смотреть на клиента, если ошибки нет, то слать запрос.
Как это сделать? Как отловить событие клиентской валидации? Или может как-то можно запустить ее вручную?
Разобрался! Делается это так:
ActiveForm::begin([
'action' => ['myAction'],
'enableAjaxValidation' => true,
'enableClientValidation' => true,
'validateOnSubmit' => true,
]);
Надо было добавить 'validateOnSubmit' => true
Если у Вас стоит параметр 'enableClientValidation' => true, то Вам незачем делать свои проверки так как в Yii2 есть собственный валидатор, а правила для него пишутся в моделе, если Вам нужно больше гибкости то читайте про ActiveField и такие валидаторы как when и whenClient. И вот ещё есть интересная вещь.
Если вообще не хочется попу отрывать от стула, то
Не добавляется записи из формы в базу данных в mysql XAMPPОтправляется код без ошибки но phpmyadmin записей не показывает
Пробовал много чего и sudo apt-get install php-mbstring из другого ответа,но ничего хорошего из этого не вышло
ЗдравствуйтеИмеется mysql таблица с 4 строками, у каждой по 4 поля