これは実際にjQueryの検証のバグのように見えます(hereのバグを報告する可能性があります)。それを回避するために、あなたは非常に特定のカスタムルールを定義できます。
$.validator.addMethod("name", function(value, element) {
return $("#firstname").val() !== '' && $("#lastname").val() !== '';
}, "Name is required");
をそして、まだgroups
機能を使用:カスタムルールは、あなたのフィールドid
の変更であればあるため、unmaintainableとハック感じ
$("form").validate({
groups: {
name: "firstname lastname"
},
firstname: "name",
lastname: "name",
errorPlacement: function(error, $element) {
var name = $element.attr("name");
if (name === "firstname" || name === "lastname") {
error.insertAfter("#name");
} else {
error.insertAfter($element);
}
}
});
をあなたの検証は中断されます。しかし、それは問題を取り除く。
ここに例を示します。http://jsfiddle.net/Rqbws/
hmです。しかし、私はグループ内の各フィールド(正規表現、カスタムなど)に適用されるいくつかのルールを持っているとき、これはどのように動作しますか? – Ortal
@Ortal:そうです、それは強固な解決策ではありません。私はもっと良いものを考え出すつもりです。 jQueryの検証が自動的にこれを処理しないことは残念です。 –