提问者:小点点

在jquery中,根据下拉列表值验证textbox值0或大于0


这里我使用jquery验证插件。在我的表单中有一个下拉选择和一个输入文本框。当我选择下拉值0,然后文本框应该接受大于0,否则必须通过错误。如果我选择下拉取值1或2,那么文本框应该是只接受0,不超过0,必须通过错误。这是我的要求。请帮帮忙。

参考:http://jsfidle.net/ssthil/vqnpy/11/


共2个答案

匿名用户

必须为文本框添加自定义验证规则。它检查复选框值和下拉值。

在表单验证中

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";
    }