这里我使用jquery验证插件。在我的表单中有一个下拉选择和一个输入文本框。当我选择下拉值0,然后文本框应该接受大于0,否则必须通过错误。如果我选择下拉取值1或2,那么文本框应该是只接受0,不超过0,必须通过错误。这是我的要求。请帮帮忙。
参考:http://jsfidle.net/ssthil/vqnpy/11/
必须为文本框添加自定义验证规则。它检查复选框值和下拉值。
在表单验证中
textbox: {
required: true,
custom_rule : true
}
然后
$.validator.addMethod("custom_rule", function(value, element) {
var dropdown_val = $("#dropdown").val();
if((dropdown_val==0 && value>0) || (dropdown_val==1 || dropdown_val==2 ) && value==0))
{
return true;
}
else
{
return false;
}
}, "if drop down 0 , input should greater than 0 , else input should be 0");
以防万一有其他人被丢到这个柱子上。Kanishka的帖子也解决了我的问题,但我也需要一个根据值定制的消息。所以需要做的是以下几点:
在“验证”表单中:
rules: {
textbox: {
required: true,
custom_rule : true
}
}, messages {
textbox: {
required: mymessageprocessor //this is a function that returns custom messages
}
然后在末尾添加这个javascript:
$.validator.addMethod("custom_rule", function(value, element) {
var dropdown_val = $("#dropdown").val();
if((dropdown_val==0 && value>0) || (dropdown_val==1 || dropdown_val==2 ) && value==0))
{
return true;
}
else
{
return false;
}
}, "");
function mymessageprocessor() {
var dropdown_val = $("#dropdown").val();
if (dropdown_val == 0) {
return "value is zero";
} else {
return "value is greater than zero";
}