Возможно добавить свою валидацию поля, которая будет выполняться на стороне клиента.
Например можно проверить возраст участника:
$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();
}
}
|
После проделанных действий дата рождения пользователя
будет проверяться, а в случае неудачи отобразится соответствующее
сообщение.
Подробнее о валидации на стороне клиента можно прочесть здесь.