Jquery日期验证器未收到值

时间:2013-11-29 13:33:28

标签: java javascript jquery html date

我需要对两个日期进行验证: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>

3 个答案:

答案 0 :(得分:0)

在检查startdate小于enddate之前,请确保enddate具有值。

答案 1 :(得分:0)

如果数据为null或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!");

答案 2 :(得分:0)

我找到了一种验证我需要的方法,以便使用jquery datepicker获得start_date&lt; = end_date:

$(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);

          }

      }); 

    });

我认为其他人也可以使用这个答案。 再次感谢您的回答。