RadPHP XEのFormValidatorの入力規則を実行時に設定する方法を紹介します。
FormValidatorのRulesプロパティに入力規則を実行時に設定することができます。
Edit1の入力を必須にする例
function Unit1BeforeShow($sender, $params)
{
$rules = array();
$rules[] = array(
'Control'=>'Edit1', //検証するコントロール名
'ErrorMessage'=>'Edit1が入力されていません。', //エラーメッセージ
'Name'=>'ValidationRule1', //検証設定名
'Required'=>true, //必須
'MaxLength'=>'0', //最大文字長
'MinLength'=>'0', //最小文字長
'MaxValue'=>'0', //最大値
'MinValue'=>'0' //最小値
);
$this->FormValidator1->Rules = $rules;
}
正規表現でチェックする例
JavaScriptで実行されるため、\の数に注意してください。
function Unit1BeforeShow($sender, $params)
{
$rules = array();
$rules[] = array(
'Control'=>'Edit1',
'ErrorMessage'=>'郵便番号に間違いがあります。',
'Name'=>'ValidationRule1',
'Required'=>true,
'MaxLength'=>'0',
'MinLength'=>'0',
'MaxValue'=>'0',
'MinValue'=>'0',
'ValidationType'=>'/^\\\\d{3}-\\\\d{4}$/' //正規表現。\\の数に注意
);
$this->FormValidator1->Rules = $rules;
}
再入力確認の例
function Unit1BeforeShow($sender, $params)
{
$rules = array();
$rules[] = array
(
'Control'=>'Edit1',
'Equals'=>'Edit2', //再入力欄
'ErrorMessage'=>'入力した値が一致しません。',
'Name'=>'ValidationRule1',
'Required'=>true,
'MaxLength'=>'0',
'MinLength'=>'0',
'MaxValue'=>'0',
'MinValue'=>'0'
);
$this->FormValidator1->Rules = $rules;
}