Jassery Bassistance: проверить, что дата окончания после даты начала - PullRequest
0 голосов
/ 13 января 2010

Я использую валидацию jquery bassistance и мне нужно убедиться, что дата начала - после даты окончания. Мне интересно, знает ли кто-нибудь, существует ли эта функция, и могу ли я добавить правила для этого или мне нужно добавить пользовательскую проверку. У меня возникают трудности с поиском каких-либо примеров этого, которые работают с моим кодом, который перенаправляет в другую функцию, если форма верна. (вставлено ниже)

$("#hotels").validate({
    rules: {
        checkinDate: {
            date: true
        },
        checkoutDate: {
            date: true
        }
    }
});


$("#hotels input.submit").click(function() {
  var isValid = $("#hotels").valid();
  if (isValid == true) {
      } else {
          hComp();
          return false;
      }
  } else {
      return false;
  }
});

Я видел это в другом примере, но не уверен, как я мог это использовать.

var startDate = new Date($('#startDate').val());
var endDate = new Date($('#endDate').val());

if (startDate < endDate){
// Do something
}

Заранее благодарим за любую помощь.

Ответы [ 2 ]

1 голос
/ 13 января 2010

Этот пример выглядит так, как будто это именно то, что вам нужно. Посмотрите здесь .

Заимствуя из этого примера jquery, предположим, что у вас есть следующий HTML:

  <input id="startDate" value="Jan 12, 2009" />
  <input id="endDate" value="Jan 12, 2010" />

Тогда этот код JavaScript должен показывать предупреждение "Дата начала раньше даты окончания!" (при условии, что значения не изменены):

var startDate = new Date($('#startDate').val());
var endDate = new Date($('#endDate').val());

if (startDate < endDate){
    alert("Start date is before end date!");
}
0 голосов
/ 30 января 2010

Я решил эту проблему до проверки, что, пожалуй, намного лучшая идея. Вот решение с использованием JQuery UI DatePicker. Тогда я могу просто использовать ту же логику для окончательной проверки.

$('input').filter('.datepicker').datepicker({

beforeShow: customRange, showOn: «оба», buttonImage: contextPath + '/assets/images/icon-calendar.gif', buttonImageOnly: правда, buttonText: «Показать сборщик даты» });

функция customRange (a) {
var b = новая дата ();
var c = новая дата (b.getFullYear (), b.getMonth (), b.getDate ());
if (a.id == 'checkoutDate') {
if ($ ('# checkinDate'). datepicker ('getDate')! = null) {
c = $ ('# checkinDate'). datepicker ('getDate');
}
}
возврат {
minDate: c
}
}

...