Wrt this question on stackoverflow,如果电话和移动字段为空,则会给出错误消息,但在此之后,当两者中的任何一个填满并且表单再次提交时,错误消息也会保留。验证检查使用输入的旧值进行,并且当页面刷新时,它将获取新值。如果有人能帮我解决这个问题,我将不胜感激吗?
答案 0 :(得分:3)
1)根据the question you've linked,我使用this jsFiddle构建了the depends
option,但仍然看到很多问题。这些规则似乎根本不起作用,因为这两个字段总是必需的。
2)require_from_group
文件中包含additional-methods.js
规则。对于要定位的规则,这两个字段必须具有相同的class
,在本例中为.group
。但是这个方法has some known bugs禁用了表单上的所有其他规则
DEMO :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
}
}
});
});
答案 1 :(得分:0)
尝试放置自定义错误放置
$('#form').validate({
errorPlacement: function(error,element) {
return true;
}
});