Это действительно похоже на ошибку в jQuery validate (вы можете отправить сообщение об ошибке здесь ).Чтобы обойти это, вы можете определить очень специфическое пользовательское правило:
$.validator.addMethod("name", function(value, element) {
return $("#firstname").val() !== '' && $("#lastname").val() !== '';
}, "Name is required");
И все же использовать функциональность groups
:
$("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);
}
}
});
Это пользовательское правило кажется неприемлемым и хакерским, так как есливаше поле id
s изменится, ваша проверка будет нарушена.Тем не менее, это избавляет от проблемы.
Вот пример: http://jsfiddle.net/Rqbws/