使用JQuery如何检查我需要填充的两个字段

时间:2013-05-23 14:49:19

标签: javascript jquery jquery-validate

使用jQuery我的用户只需要输入一个字段,ssn或者手机,但是我如何检查jquery验证是否检查了一个?

<script type="text/javascript">
    $(document).ready(function () {
        $("#memberrequest").validate({
            rules: {
                phonenumber: {
                    minlength: 12,
                    maxlength: 12
                },

                ssn: {
                    minlength: 10,
                    maxlength: 10
                }

            }
        });


    });
</script>

请帮帮我

3 个答案:

答案 0 :(得分:1)

我根据你发布的内容为你做了一个小提琴,它仍然需要定制,但它会证明你的要求。

http://jsfiddle.net/whytheday/QP4wd/1/

$(document).ready(function () {
    $("#memberrequest").validate({
        rules: {
            phonenumber: {
                minlength: 12,
                maxlength: 12,
                required: {
                    depends: function(element){
                        return $("#ssn").val().trim() == ""
                    }
                }
            },

            ssn: {
                minlength: 10,
                maxlength: 10,
                required: {
                    depends: function(element){
                        return $("#phonenumber").val().trim() == ""
                    }
                }
            }

        }
    });
});

您只需将其设置为必需,然后您可以设置依赖关系,并可以检查其他字段是否有值。

答案 1 :(得分:0)

查看“必需”http://docs.jquery.com/Plugins/Validation/Methods/required#dependency-expression的选项。您可以指定依赖关系表达式或依赖关系回调。这意味着你提供了一些javascript代码(在class属性中,示例只需要:true),并且你说“如果我的代码评估为true,那么这个表单元素是必需的”。< / p>

因此,在您的情况下,电话号码和ssn字段都需要依赖关系表达式,如果另一个是空的,则需要这个。“

答案 2 :(得分:0)

您可以遍历这两个字段,看看是否有值:

$( function () {
    var passesValidation = false;

    $('input').each( function() {
        if ( $(this).val() ) { passesValidation = true; } // could add optional check against length for this field
        //  $(this).val().length && $(this).val().length >= $(this).attr('data-minlength') or some such
    });


});

http://jsfiddle.net/nq69r/