Как сделать перекрестную проверку поля с помощью jQuery? - PullRequest
2 голосов
/ 02 февраля 2012

Я вижу много помощи в написании пользовательской проверки jQuery для любого типа поля на моей странице, но как мне написать собственный метод проверки, который учитывает значения из нескольких полей (перекрестная проверка)?Я думаю Я должен сделать $.validator.addMethod, чтобы добавить свой пользовательский метод, а затем добавить правило в объект валидатора (а не в конкретное поле), но у меня возникли проблемы с синтаксисом.Может кто-нибудь помочь?

Например,

У меня есть два поля: дата и время.Моя форма действительна, только если:

  1. Оба заполнены
  2. Дата не является воскресеньем
  3. Время между 6 утра и 6 вечера * 10101

1 Ответ

1 голос
/ 02 февраля 2012

Вам нужны некоторые пользовательские правила, но каждый метод проверки не должен учитывать несколько полей.Мне кажется, вам нужно три разных правила: обязательные применяются к обоим полям (уже встроены), а затем настраиваемое правило для правила времени (6:00 - 18:00) и правила дня (не может быть воскресеньем):

$.validator.addMethod("notsunday", function (value, element) {
    var date = Date.parse(value);
    return this.optional(element) || (date && date.getDay() !== 0);
});

$.validator.addMethod("businesshours", function (value, element) {
    var time = Date.parse(value);
    return this.optional(element) ||
        (time && (time.getHours() >= 6 && time.getHours() <= 18));
});

$(document).ready(function() {
    $("#test").validate({
        rules: {
            date: {
                required: true,
                notsunday: true
            },
            time: {
                required: true,
                businesshours: true
            }
        },
        messages: {
            date: {
                notsunday: "Can't be a Sunday!"
            },
            time : {
                businesshours: "Must be between 6AM and 6PM"
            }
        }
    });
});

Пример: http://jsfiddle.net/andrewwhitaker/7KFgn/

Примечание , что в примере используется DateJS , чтобы упростить анализ дат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...