haiju's 開発メモ

開発に必要な情報を自分用にメモ

jQueryのvalidation rules内で処理分岐

仕事でCakePHP2.xを使っているが、validationは

サーバ任せではなくクライアント側でゴソゴソやって

るので、もれなくjQueryを使っている。

しかも、目前のラジオボタンのチェック状況で次の

フォームのvalidationを必須か必須解除にするので、

script内部で、ラジオボタンの選択状況を取得して判定

して処理分岐じゃ間に合わん。

そもそもそうだったとして、どうやってvalidationメッセー

ジの切り替えをするんだろう?

という疑問が湧いた。

実装イメージとしては、validation rules: 内で

required : true を設定する時に条件をかませられれば

いいよね?と考えた(ΦωΦ)

調べてみると、無名関数で条件を指定してやれば

validation rules内でも制御できるらしい。

(ex)直前のラジオボタンの選択状況で次のフォームのvalidationを設定

'data[table_name][agent1]' : {
  'required' : function() { return ($('[name="data[table_name][approval_status]"]:checked').val() === '1');
}},

 うん、できた(ΦωΦ)

[参考サイト]

jQueryでフォームの入力値をチェックする(Validation)プラグイン|プログラムメモ