Добавить клиентский валидатор
Добавить клиентский валидатор
Приветствую.
Видел это, буду пробовать советы оттуда, но может кто делал недавно и знает как сделать специфичный клиентский валидатор
- там специальная логика, поле одно, второе, третье сравнивает
- чтобы навешивалось на поле, и соответственно пересчитывалось, при изменении
, ну т.е. как бы чтобы работал как любой встроенный валидатор, то код js мой
Видел это, буду пробовать советы оттуда, но может кто делал недавно и знает как сделать специфичный клиентский валидатор
- там специальная логика, поле одно, второе, третье сравнивает
- чтобы навешивалось на поле, и соответственно пересчитывалось, при изменении
, ну т.е. как бы чтобы работал как любой встроенный валидатор, то код js мой
-
- Сообщения: 251
- Зарегистрирован: 2014.08.18, 14:01
Re: Добавить клиентский валидатор
Прочитайте документацию, там есть пример
Re: Добавить клиентский валидатор
Вы про это?
Думал может как попроще есть, просто снаружи на js ошибку на поле навешивать, как по примеру с php кастомными правилами:
Код: Выделить всё
public function rules()
{
return [
// an inline validator defined as the model method validateCountry()
['country', 'validateCountry'],
];
}
public function validateCountry($attribute, $params, $validator)
{
if (!in_array($this->$attribute, ['USA', 'Indonesia'])) {
$this->addError($attribute, 'The country must be either "USA" or "Indonesia".');
}
}
Re: Добавить клиентский валидатор
так а что там сложного? ещё 1 класс создать вместо метода в модели?maleks писал(а): ↑2021.05.26, 14:00Вы про это?
Думал может как попроще есть, просто снаружи на js ошибку на поле навешивать, как по примеру с php кастомными правилами:
Код: Выделить всё
public function rules() { return [ // an inline validator defined as the model method validateCountry() ['country', 'validateCountry'], ]; } public function validateCountry($attribute, $params, $validator) { if (!in_array($this->$attribute, ['USA', 'Indonesia'])) { $this->addError($attribute, 'The country must be either "USA" or "Indonesia".'); } }
-
- Сообщения: 251
- Зарегистрирован: 2014.08.18, 14:01
Re: Добавить клиентский валидатор
maleks писал(а): ↑2021.05.26, 14:00Вы про это?
Думал может как попроще есть, просто снаружи на js ошибку на поле навешивать, как по примеру с php кастомными правилами:
Код: Выделить всё
public function rules() { return [ // an inline validator defined as the model method validateCountry() ['country', 'validateCountry'], ]; } public function validateCountry($attribute, $params, $validator) { if (!in_array($this->$attribute, ['USA', 'Indonesia'])) { $this->addError($attribute, 'The country must be either "USA" or "Indonesia".'); } }
Если на клиента то там есть еще пример с when
Re: Добавить клиентский валидатор
Сложно будет, если использовать в форме enableAjaxValidation и логику в модели? Это касается только валидности данных.maleks писал(а): ↑2021.05.26, 10:43 Приветствую.
Видел это, буду пробовать советы оттуда, но может кто делал недавно и знает как сделать специфичный клиентский валидатор
- там специальная логика, поле одно, второе, третье сравнивает
- чтобы навешивалось на поле, и соответственно пересчитывалось, при изменении
, ну т.е. как бы чтобы работал как любой встроенный валидатор, то код js мой
А пересчитывание это уже не валидность данных, а метод, который будет выполнен после того как данные изменятся и перезапишутся в БД.
Не всегда нужно всё писать на js
-
- Сообщения: 251
- Зарегистрирован: 2014.08.18, 14:01
Re: Добавить клиентский валидатор
Сделайте обычные валидаторы в модели и отправляйте через AJAX , пройдет обычная валидация и вернет ошибки
Re: Добавить клиентский валидатор
Сделал через clientValidateAttribute(), аяксом как раз я такое обычно и валидировал всегда, но тут потребовалось js