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


Новая документация

Настройка платежных систем
Настройка способа оплаты КупиВкредит
Настройка способа оплаты Acquiro
Настройка способа оплаты AvisoSMS

Обновленная документация 

Разработчикам (API)
Руководство пользователя

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

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

$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 – 2011 © Amiro.CMS Все права защищены.