2010-03-05 85 views
0

我想用JQuery验证插件验证输入字段。 数字范围[范围()]取决于选择框的值。 例如,当选择框是“A”时,范围应该在1和10之间。但是当它的“B”应该在5和10之间时,依此类推。我尝试过读取选择框的值并调用一个函数来验证输入,并传递最小值。JQuery根据选择框验证文本字段

这是有效的,但是当你选择“A”时,你认为嗯它应该是“B”它仍然验证为“A”。 我在考虑'依赖',但我只认为它适用于'必需'。

$("#theSelectID").change(function() { 
     var theValueOfSelected = $('#LeverancierID :selected').text(); 
     switch(theValueOfSelected){ 
     case "A": 
      minval(1, "Null"); 
      break; 
     case "B": 
      minval(5, "PRCC"); 
      break; 
      } 
      function minval(theVal, theLev){ 
     $("#AddInkoop").validate({ 
      rules: { 
       Aantal: { 
        required: true, 
        range: [theVal, 999] 
       } 
      }, 
      messages: { 
       Aantal:{ 
        required:"required", 
        range: "give a number between "+ theVal +" and 999." 
       } 
      } 
     }); 
    } 

回答

0

我认为你是在向后走。不是每次更改选择框都要更改验证设置,而是设置验证规则,以便使用反映选择框当前值的函数计算最小值。请注意,您可能需要更新一些说明文字,指出选择更改时可接受的范围。

$("#AddInkoop").validate({ 
     rules: { 
      Aantal: { 
       required: true, 
       range: function() { return [ $('#LeverancierID').val(), 999 ]; } 
      } 
     }, 
     messages: { 
      Aantal:{ 
       required:"required", 
       range: "the value is outside the acceptable range" 
      } 
     } 
}); 
+0

感谢这工作,它需要一些修改,以适应我的项目,但它的作品。 – Elvn 2010-03-05 14:03:18