Jquery范围验证功能

时间:2015-05-22 19:11:23

标签: jquery jquery-validate

我的页面中有两个数字文本字段,例如field1和field2。 field1范围介于1和12之间。当field1值为1时,只允许用户在field2中输入值。 field2范围再次介于1和12之间。

我想根据field1的值添加field2的范围验证。无论如何我可以添加像这样的jQuery函数。

field2: {
    range: function(){
        if($("#field1").val() == 1){
            return "[1,12]";
        }
    }
}

另外,当field1值不为1时,如何限制用户输入field2中的任何值。

2 个答案:

答案 0 :(得分:0)

你可能会看看像Knockout或Angular这样的双向绑定库,具体取决于你的实际应用程序的重量。要使用vanilla Javascript或jQuery,您需要将事件处理程序绑定到输入元素并根据需要修改其属性,如:

$("#field1").on("input", function() {
  $("#field2").prop("disabled", this.value != 1); // or readonly
});

如果你想发布你的HTML并扩展你想要它做什么,我可以搞砸了。

答案 1 :(得分:0)

如果您修复了三个小错误,您的代码应该正常工作......

  1. 使用.val(),而不是.val

  2. 使用return [1, 12],而不是"return [1, 12]"

  3. 使用$('[name="field1"]'),而不是$("#field2")。您无法将字段的值与自身进行比较。也许只是一个错字。

  4. jQuery

    $(document).ready(function () {
    
        $('#myform').validate({
            rules: {
                field1: {
                    required: true
                },
                field2: {
                    required: true,
                    range: function () {
                        if ($('[name="field1"]').val() == 1) {
                            return [1, 12];
                        }
                    }
                }
            }
        });
    
    });
    

    <强> HTML

    <form id="myform">
        <input type="text" name="field1" />
        <br/>
        <input type="text" name="field2" />
        <br />
        <input type="submit" />
    </form>
    

    工作演示:http://jsfiddle.net/6000rp0b/