検証プラグインを使用しています。ラジオの値が「REGULAR」以外の場合、同じフォームの特定のフィールドを検証したいのですが、
<form id="registerform">
<input type="radio" name="role" value="REGULAR" checked="checked" id="role">Regular<br />
<input type="radio" name="role" value="AGENT" id="role">Agent<br />
<input type="radio" name="role" value="ORGANIZATION" id="role">Organization<br />
<input type="text" name="phone" id="phone"><br/>
<input type="text" name="password" id="password"><br/>
<input type="text" name="work_area" id="work_area" value=""><br/>
<input type="text" name="work_phone" id="work_phone" value=""><br/>
<input type="text" name="org_name" id="org_name"><br/>
<input type="text" name="org_phone" id="org_phone"><br/>
</form>
role == "REGULAR"の場合、電話、パスワードを検証します
role == "AGENT"の場合、phone、password、work_area、work_phone
を検証します
role == "ORGANIZATION"の場合、電話、パスワード、org_name、org_phone
を検証します
これをエレガントに実現するには?
私はそれを異なる形に分割したくありません!
私の誤ったコード:
$(document).ready(function() {
var rule_options =
{
"phone": "required"
,"password": "required"
};
var role = $("#registerform").find("input[name=role]:checked").val();
if(role == "AGENT") {
$.extend(true, rule_options,
{
"work_area": "required"
,"work_phone": "required"
}
);
}
if(role == "ORGANIZATION") {
$.extend(true, rule_options,
{
"org_area": "required"
,"org_phone": "required"
}
);
}
jform.validate({
errorClass : "err_label",
rules: rule_options,
ignore: "",
上記のコードは、document.readyの後に1回だけ実行されるため、機能しません。
私は何か、いくつかの構文が欠けているに違いありません..〜アイデア?