Центр документации
Карта сайта

Создай визитку сам!


Самоучитель по интеграции дизайна и настройке Amiro.CMS на примере демонстрационной версии пакета Визитка »


Валидация полей формы на стороне клиента

Возможно добавить свою валидацию поля, которая будет выполняться на стороне клиента. Например, можно проверить возраст участника:

$this->addField(array('name' => 'birth_date', 'type' => 'date', 'validate' => array('custom', 'filled')));


Кастомный валидатор будет работать ТОЛЬКО если помимо валидатора 'custom' указан валидатор 'filled' (для типа 'select' валидатор 'filled' добавляется автоматически).
Существуют два способа для осуществления проверки.

Первый способ:
Валидация осуществляется в общем потоке листенера (listener), и создается сразу для всех полей. Если вы хотите проверить какое-либо конкретное поле, необходимо в блоке if проверять его по названию (oField.name) или ID (oField.id).
В этом случае при проверке поля будет посылаться сообщение «ON_FORM_FIELD_VALIDATE», которое можно перехватить и проверить на правильность. В случае, если проверка не прошла, достаточно установить флаг error массива параметров в 'true'. Например: можно в плагин в файл templates/form.adm.js добавить код: 

 

AMI.Message.addListener(
    'ON_FORM_FIELD_VALIDATE',
    function(oParameters){
        if(oParameters.oField.value.substr(-4)>1995){
            alert(AMI.Template.Locale.get('form_validate_birth_too_young'));
            oParameters.error = true;
            return(false);
        }
        return true;
    }
);


А в файл templates/client.lng:

%%form_validate_birth_too_young%en%%
User too young!
%%form_validate_birth_too_young%ru%%
Пользователь слишком молод!


И дата рождения пользователя будет проверяться, и в случае неудачи отобразится соответствующее сообщение.

Второй способ (начиная с версии 6.0.2): 
Назначить обработчик на каждое поле. В этом случае название сообщение будет выглядеть как «ON_FORM_FIELD_VALIDATE_BIRTH_DATE».
В коде templates/form.adm.js необходимо в таком случае добавить следующую запись:

AMI.Message.addListener(
    'ON_FORM_FIELD_VALIDATE_BIRTH_DATE',
    function(oParameters){
        if(oParameters.oField.value.substr(-4)>1995){
            alert(AMI.Template.Locale.get('form_validate_birth_too_young'));
            oParameters.error = true;
            return(false);
        }
        return true;
    }
);

Языковой файл подключается так же, как и в первом варианте.

Установка и настройка Руководство пользователя Интеграция дизайна Разработчикам (API)
 2000 – 2019 © Amiro.CMS Все права защищены.