0

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

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

4

2 回答 2

3

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

在您的表单验证中

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");
于 2012-08-11T07:18:19.383 回答
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";
    }
于 2020-07-18T11:30:58.513 回答