Вывод ошибки в 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;
Валидация работает, но не могу понять как выводить во всплывающем окне эту ошибку (когда не заполнены оба поля)? Всегда выводится 'Пожалуйста, заполните необходимые поля.'
Анатолий
15 апреля 2020, 16:05
modx.pro
725
0

Комментарии: 1

Наумов Алексей
16 апреля 2020, 11:28
0
Во-первых, есть замечания к самому валидатору.
Правильнее будет писать:

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
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1