我正在使用HTML表单,其中整体行为由复选框name="doregister"
(unchecked = login,checked = register)
字段的可见性由此复选框控制。注册字段应该被验证:
我试图通过以下方式控制验证:
jQuery("#myform").validate({
rules: {
loginusername: {
required: function() { return jQuery("input[name=doregister]").is(":checked")?"1":"0"=="0";},
},
...
salutation: {
required: function() { return jQuery("input[name=doregister]").is(":checked")?"1":"0"=="1";},
},
...
});
对于选中的复选框doregister失败,即没有验证称呼。
任何提示?
答案 0 :(得分:0)
你的函数内的条件不能正确返回布尔值。
return jQuery("input[name=doregister]").is(":checked")?"1":"0"=="1";
选中后,它会返回STRING" 1"这不是一个布尔值,在这种情况下也不会得到类型转换,因为它不知道这样做,因此你的条件不能被"要求"。
您可以通过强制布尔值来修复您真正奇怪的条件,如下所示:
return jQuery("input[name=doregister]").is(":checked")?!!"1":"0"=="1";
请勿这样做,只需返回复选框状态的布尔值:
return jQuery("input[name='doregister']")[0].checked;
请注意,OTHER应该是" NOT"检查状态:使用!
return !jQuery("input[name='doregister']")[0].checked;
代码段:
$("#myform").validate({
rules: {
loginusername: {
required: function () {
return !jQuery("input[name='doregister']")[0].checked;
},
},
salutation: {
required: function () {
return jQuery("input[name='doregister']")[0].checked;
},
}
}
});