Валидатор даты запроса не получает значения

0

Мне нужно сделать валидацию для двух дат: start_date и end_date, после того, как я напишу их на входах. Валидация работает нормально, но я хотел бы иметь возможность дать end_date значение null или 0. Когда я не пишу ничего во втором вводе, он все равно дает мне сообщение об ошибке из jQuery. Не могли бы вы мне помочь?

$.validator.addMethod("enddate", function(value, element) {
    alert(value);
    if (value != null) {
        var startdatevalue = $(".startdate").val();
        return Date.parse(startdatevalue) < Date.parse(value);
    }
}, "End date must be greater than start date!");

И это мой html:

<tr>
    <td>Start date</td>
    <td><input type="text"  id="startDate" name="startDate" class="startdate"  value="<fmt:formatDate pattern="dd.MM.yyyy" value="${List.startDate}" />"/></td>
</tr>
<tr>
    <td>End date</td>
    <td><input type="text"  id="endDate" name="endDate" class="enddate" value="<fmt:formatDate pattern="dd.MM.yyyy" value="${List.endDate}"/>"/></td>
</tr>
  • 0
    Ваш валидатор ничего не возвращает, если значение равно нулю, поэтому он не проверяется, если вы ничего не пишете во втором входе
  • 0
    Я думаю, что это то же самое, вместо того, чтобы я написал класс. нет?
Показать ещё 2 комментария
Теги:
date

3 ответа

0
Лучший ответ

Я нашел способ проверить, что мне нужно, чтобы иметь start_date <= end_date - с jquery datepicker:

$(document).ready(function(){

      $("#startDate").datepicker({

          dateFormat: 'dd.mm.yy',

          numberOfMonths: 1,

          onSelect: function(selected) {

            $("#endDate").datepicker("option","minDate", selected);

          }

      });

      $("#endDate").datepicker({

          dateFormat: 'dd.mm.yy',

          numberOfMonths: 1,

          onSelect: function(selected) {

              $("#startDate").datepicker("option","maxDate", selected);

          }

      }); 

    });

Я думал, что кто-то другой тоже сможет использовать этот ответ. Еще раз спасибо за ответы.

0

нужно возвращать некоторые данные, если оно равно нулю или 0

$.validator.addMethod("enddate", function(value, element) {
    alert(value);

    // Valid if null or 0
    if (value == null || value == 0) {
        return true;
    }
    // else compare dates
    var startdatevalue = $(".startdate").val();
    return Date.parse(startdatevalue) < Date.parse(value);
}, "End date must be greater than start date!");
  • 0
    Спасибо за совет, но это работает только в том случае, когда я ничего не пишу во вводе end_date. Если я это сделаю, проверка не выполняется правильно ..
0

Перед проверкой startdate меньше, чем enddate, убедитесь, что enddate имеет значение.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню