条件IF的jquery验证

时间:2013-12-17 03:06:23

标签: jquery jquery-validate

如何实现以下目标?对于相同的字段,根据下拉值进行不同的范围验证。

谢谢

如果从下拉列表中选择蓝色,则值字段的范围应为200-300(如果为红色,则范围为0-100

HTML

<select name="color" id="Color">
<option value="orange" select="selected">orange</option>
<option value="blue">blue</option>
<option value="red">red</option>
<option value="yellow">yellow</option>
</select>
<input type="text" id="value" />

SCRIPT

$("#myform").validate({
  rules: {
    value: {
      required: true,
        if ($('#color').val() == "red"){
      range: [0, 100]
    }
      if ($('#color').val() == "blue"){
      range: [200, 300]
    }
  }
}); 

1 个答案:

答案 0 :(得分:3)

  • 您需要使用此插件验证的任何字段 必须 包含name属性。

    <input type="text" id="value" name="value" />
    
  • .on('change')处理程序与the plugin's .rules() methods一起附加到select元素。

    $('#color').on('change', function() {
        if ($(this).val() == "blue") {
            $('#value').rules('add', {
                range: [200,300]
            })
        } else if ($(this).val() == "red") {
            $('#value').rules('add', {
                range: [0,100]
            })
        } else {
            $('#value').rules('remove');
        }
    });
    
  • required中声明.validate()规则,以避免上述.rules()方法的干扰。

    $("#myform").validate({
        rules: {
            value: {  // <-- this refers to the "name" attribute
                required: true
            }
        }
    });
    

工作演示:http://jsfiddle.net/3796X/