JQuery проверить группу проверки - PullRequest
2 голосов
/ 21 ноября 2011

Я использую плагин проверки jQuery. У меня есть 3 поля, и мне нужно проверить их, только если одно из они не пустые, в противном случае вообще не проверяются.

<input type="text" data-validate="{validate:{required:true, 
messages:{required:'Flickr set is required'}}}" id="flickr_set" name="flickr_set">


<input type="text" data-validate="{validate:{required:true, 
messages:{required:'Flickr ID is required'}}}" id="flickr_id" name="flickr_id">

<input type="text" data-validate="{validate:{required:true,
positiveNumber:true, messages:{required:'Photos count is required',
positiveNumber:'Positive number is required'}}}" id="flickr_photos-count" name="flickr_photos-count">

Ответы [ 2 ]

3 голосов
/ 21 ноября 2011

Вам необходимо использовать метод dependency-callback плагина проверки.

Что это позволит вам сделать:

Делает элемент обязательным, в зависимости от результата данного обратного вызова.

Затем вы можете поместить правило проверки required в 3 поля, которые говорят, что это поле будет необходимо только на основе возврата из функции обратного вызова; Затем вы можете поместить правило в поля, чтобы сказать, требуется ли это поле, если любое из полей не пустое return true, или не требуется это поле, если все поля не заполнены return false

Таким образом, если какое-либо из полей заполнено, все они становятся обязательными, если все они оставлены пустыми, ни одно из них не требуется.

rules: {
    flickr_set: {
        required: function(element) {
            return ($("#flickr_set").is(':empty') && $("#flickr_id").is(':empty') && $("#flickr_photos-count").is(':empty') ? false : true);
        }
    },
    flickr_id: {
        required: function(element) {
            return ($("#flickr_set").is(':empty') && $("#flickr_id").is(':empty') && $("#flickr_photos-count").is(':empty') ? false : true);
        }
    },
    flickr_photos-count: {
        required: function(element) {
            return ($("#flickr_set").is(':empty') && $("#flickr_id").is(':empty') && $("#flickr_photos-count").is(':empty') ? false : true);
        }
    }
}
0 голосов
/ 21 ноября 2011

Просто поменяйте

$("form").validate();

И дайте полям ввода требуемый класс.

Если вы хотите иметь пользовательские сообщения, вы можете изменить выше javascript на:

$("form").validate({
    messages : {
        flickr_set : "Flickr set is required",
        flickr_id : "Flickr ID",
        flickr_photos-count : "Photos count is required"
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...