从另一个日期选择器中选择日期时更改第二个日期选择器minDate

时间:2014-01-09 12:44:12

标签: javascript jquery jquery-ui date datepicker

我正在使用jquery ui datepicker。

我在页面上有两个datepicker,from和to datepickers

当我在一个日期选择器中选择日期时,我将最大和最小日期更新为第二个日期选择器。

我的问题是,在关闭(隐藏)选择的日期选择器之前, 它显示第二个日期选择器而不是第一个(当我更新第二个日期选择器的最小日期时),然后关闭它。

为什么当我从另一个datepicker更新最小日期时它会显示第二个日期选择器?

如何在更新第二个datepicker之前隐藏datepicker?

 <!doctype html>
<html >
<head>

  <link rel="stylesheet" href="//code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.9.1.js"></script>
  <script src="//code.jquery.com/ui/1.10.3/jquery-ui.js"></script>

</head>
<body>

<input name="fromDateCalendar" type="text" value="10/12/2013" id="fromDateCalendar" style="width:100px;" />     

 <input name="toDateCalendar" type="text" value="09/01/2014" id="toDateCalendar" style="width:100px;" />    

<script>

    $(function () {
        $('#fromDateCalendar').datepicker({
            onSelect: function (date) {change1(date);}});

        $("#toDateCalendar").datepicker({
            onSelect: function (date) {change2(date);}, maxDate: '0' });
    });

    function change1(date) {
        $('#toDateCalendar').datepicker('option', 'minDate', date);}

    function change2(date) {
        $('#fromDateCalendar').datepicker('option', 'maxDate', date);}


</script> 

</body>
</html>

1 个答案:

答案 0 :(得分:0)

当我改变最大日期时解决显示#2日期选择器的问题(代替#1 datepicker), 在使用setTimeout

关闭#1 datepicker后调用.... datepicker('option','minDate',start)
 onSelect: function (date) {                                                  
                             setTimeout(function () {
                                 ....datepicker('option', 'minDate', start)
                             }, 300)
                        }....