我正在使用验证插件。我想验证相同表单中的某些字段,当单选值不是“常规”时,
<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>
当角色==“常规”时,验证电话,密码
当角色==“代理”时,验证电话,密码,工作区域,工作电话
当角色==“组织”时,验证电话,密码,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 之后只运行一次。
我一定遗漏了一些东西,一些语法..〜想法?