-2

在stackoverflow上写这个问题,如果电话和移动字段为空,那么它会给出一条错误消息,但之后当两者中的任何一个被填写并再次提交表单时,错误消息仍然存在。验证检查使用输入的旧值进行,当页面刷新时,它会采用新值。如果有人能帮我解决这个问题,我将不胜感激??

4

2 回答 2

3

1)根据您链接的问题,我使用选项构建了这个 jsFiddle,但仍然看到很多问题。这些规则似乎根本不起作用,这两个字段总是需要的。depends

2)文件require_from_group中包含一个规则additional-methods.js。这两个字段必须具有相同class的规则才能定位,在这种情况下,.group。但是这种方法有一些已知的错误,它会禁用表单上的所有其他规则

演示:http: //jsfiddle.net/SvSrR/

$(document).ready(function () {

    $('#myform').validate({ // initialize the plugin
        groups: {
            name: "telephone mobile"
        },
        rules: {
            telephone: {
                require_from_group: [1, '.group']
            },
            mobile: {
                require_from_group: [1, '.group']
            }
        }
    });

});

3)相反,我构建了一个名为customrule(您可以随意命名)的自定义规则,并且它按我认为应该的方式工作。我还使用了groups将两条错误消息合并为一条的选项。

工作演示:http: //jsfiddle.net/2g8hL/

$(document).ready(function () {

    $.validator.addMethod("customrule", function (value, element) {
        return (!($("#mobile").val() === '') || !($("#telephone").val() === ''));
    }, "please fill out at least one");

    $('#myform').validate({ // initialize the plugin
        groups: {
            name: "telephone mobile"
        },
        rules: {
            telephone: {
                customrule: true
            },
            mobile: {
                customrule: true
            }
        }
    });

});
于 2013-03-08T17:11:31.350 回答
0

尝试放置自定义错误放置

$('#form').validate({
    errorPlacement: function(error,element) {
                       return true;
                    }
});
于 2013-03-08T11:52:14.600 回答