繁体   English   中英

使用JQuery如何检查仅需要填写的两个字段

[英]Using JQuery how do I check two fields that I need one filled only

使用jQuery,我的用户只需要输入一个字段,ssn或phone,但是如何在jquery中进行校验以确认一个是check?

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

                ssn: {
                    minlength: 10,
                    maxlength: 10
                }

            }
        });


    });
</script>

请帮帮我

我根据您发布的内容为您做了一个小提琴,它仍然必须进行自定义,但它可以说明您的要求。

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() == ""
                    }
                }
            }

        }
    });
});

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

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

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

您可以遍历两个字段,然后查看其中一个是否具有值:

$( 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/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM