日期验证:使用datepicker()验证退货日期是在出发日期之后

时间:2014-05-26 19:06:56

标签: javascript jquery validation jquery-ui-datepicker

我正在尝试验证返回日期是在出发后,我想不出如何编写该功能。我想一种方法是从datepicker()中选取的日期去掉(/)正斜杠,这样它们就是整数并将它们存储到新变量中然后使用if / else语句来警告返回日期<出发日期。

任何人都知道这是否是正确的方法?如果是这样我如何从datepicker()获取输入并删除斜杠??

$(document).ready(function(){

    var destinations = [];
    destinations[0]='italy';
    destinations[1]='france';
    destinations[2]='california';
    destinations[3]='miami';
    destinations[4]='Denver';
    destinations[5]='chicago';

    var departing = $('#departing').datepicker();
    var returning = $('#returning').datepicker();
    $('#destination').autocomplete({source:destinations});

    $('input').focus(function(){
        $(this).css('outline-color', 'skyblue');

    }); // end focus function
}); // end document Ready

2 个答案:

答案 0 :(得分:1)

您不需要自己解析日期。只需致电$(selector).datepicker('getDate'),您就会得到一个约会对象。 如果你有两个日期,你可以简单地将它们相互比较。

function validate() {
    var departing = $('#departing').datepicker('getDate');
    var returning = $('#returning').datepicker('getDate');

    //do wathever you want if returning is before departing
    alert(departing > returning);
}

您还可以限制可选日期:

$('#departing').on('change', function() {
    $('#returning').datepicker("option", "minDate", $('#departing').datepicker('getDate'));
});
$('#returning').on('change', function() {
    $('#departing').datepicker("option", "maxDate", $('#returning').datepicker('getDate'));
});

答案 1 :(得分:0)

您可以使用日期选择器功能轻松实现此目的。下面的代码行将为您提供相应日期选择器的Date对象 ...

  var departing= $("#departing").datepicker("getDate");
  var returning= $("#returning").datepicker("getDate"); 

为了比较,你可以简单地使用

   if (departing < returning) {

找出退货日期是在出发后。

或者您可以查看日期选择器日期解析器方法以直接获取Date对象,

   var departing= $.datepicker.parseDate("date-picker-format",$("#returning").val());
   var returning= $.datepicker.parseDate("date-picker-format",$("#returning").val());
   //e.g date-picker-format = dd-mm-yy