RadPHP XEのFormValidatorの入力規則を実行時に設定する方法

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;
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください