Вывод ошибки в AjaxForm
Друзья, проверяю форму на заполненность одного поля из двух. Вот вызов сниппета:
{'!AjaxForm' | snippet : [
'snippet'=>'FormIt'
'hooks'=>'spam,email'
'emailFrom'=>'noreply@test.loc'
'form'=>'tpl.callBack'
'emailTpl'=>'tpl.callBackMail'
'emailTo'=>'inbox@mail.local'
'emailSubject'=>'Обратная связь с сайта'
'validate'=>'name:required,phone:oneOfTwoFields,email:email:oneOfTwoFields,link:blank'
'customValidators' => 'oneOfTwoFields'
'validationErrorMessage'=>'Пожалуйста, заполните необходимые поля.'
'successMessage'=>'Ваше обращение отправлено. Мы свяжемся с вами!'
]}
А вот сниппет кастомного валидатора:<?php
$success = true;
$phone = trim($_POST['phone']);
$email = trim($_POST['email']);
if (empty($phone) && empty($email)) {
$success = false;
$validator->addError($key, 'Заполните поле Телефон или Email.');
}
return $success;
Валидация работает, но не могу понять как выводить во всплывающем окне эту ошибку (когда не заполнены оба поля)? Всегда выводится 'Пожалуйста, заполните необходимые поля.' Комментарии: 1
Во-первых, есть замечания к самому валидатору.
Правильнее будет писать:
А по вопросу, см. последний абзац «Custom Error Messages» документации:
docs.modx.com/current/en/extras/formit/formit.validators
Правильнее будет писать:
if(array_key_exists('phone', $validator->fields)) {
$phone = (int)$validator->fields['phone'];
}
Из $_POST тащить не совсем логически верно.А по вопросу, см. последний абзац «Custom Error Messages» документации:
docs.modx.com/current/en/extras/formit/formit.validators
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.