Возможно добавить свою валидацию поля, которая будет выполняться на стороне клиента.
Например можно проверить возраст участника:
$this ->addField( array ( 'name' => 'birth' , 'type' => 'date' , 'validate' => array ( 'custom' )));
|
В этом случае при проверке
поля будет посылаться сообщение «ON_FORM_FIELD_VALIDATE», которое можно
перехватить и проверить на правильность.
В случае, если проверка не прошла, достаточно установить флаг error массива параметров в 'true'.
Для этого нужно создать JavaScript файл с обработчиком сообщения:
"_local/_admin/_js/inst_sample_module/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;
}
);
|
А в файл языковых переменных "_local/_admin/templates/60/inst_sample_module_client.lng":
%%form_validate_birth_too_young%en%%
User too young!
%%form_validate_birth_too_young%ru%%
Пользователь слишком молод!
|
JavaScript файл необходимо подключить в классе отображения формы:
class AmiClean_AmiSample_FormViewAdm extends Hyper_AmiClean_FormViewAdm{
public function init(){
$this ->addScriptFile( '_local/_admin/_js/' . $this ->getModId() . '/form.adm.js' );
return parent::init();
}
}
|
После проделанных действий дата рождения пользователя
будет проверяться, а в случае неудачи отобразится соответствующее
сообщение.
Подробнее о валидации на стороне клиента можно прочесть здесь.