Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关闭旧日期选择器时打开新日期选择器_Javascript_Jquery_Jquery Ui_Datepicker - Fatal编程技术网

Javascript 关闭旧日期选择器时打开新日期选择器

Javascript 关闭旧日期选择器时打开新日期选择器,javascript,jquery,jquery-ui,datepicker,Javascript,Jquery,Jquery Ui,Datepicker,我正在使用一个名为datepicker的自定义JS库,您可以找到它 我已经设置好并开始工作了,但是我需要一些额外的功能,我完全不知道如何完成它 以下是我目前掌握的情况: <h:panelGroup> <h:panelGrid> <input id="depatureDate" value="Departure date" class="datepicker dp1"></input> <script&g

我正在使用一个名为datepicker的自定义JS库,您可以找到它

我已经设置好并开始工作了,但是我需要一些额外的功能,我完全不知道如何完成它

以下是我目前掌握的情况:

<h:panelGroup>
    <h:panelGrid>
        <input id="depatureDate" value="Departure date" class="datepicker dp1"></input>
        <script>
            $(".datepicker, dp1").pickadate({
                format: "dd/mm/yyyy",
                formatSubmit: "dd/mm/yyyy"
            })
        </script>
    </h:panelGrid>
    <h:panelGrid id="returnDate">
        <input value="Return date" class="datepicker dp2"></input>
        <script>
            $(".datepicker, dp2").pickadate({
                format: "dd/mm/yyyy",
                formatSubmit: "dd/mm/yyyy"
            })
        </script>
    </h:panelGrid>
</h:panelGroup>

$(“.datepicker,dp1”).pickadate({
格式:“dd/mm/yyyy”,
格式提交:“日/月/年”
})
$(“.datepicker,dp2”).pickadate({
格式:“dd/mm/yyyy”,
格式提交:“日/月/年”
})
我需要做的是:

如果单击了第一个日期选择器的输入并选择了一个日期,则该日期选择器需要关闭(它已经在这样做了,所以这很好),第二个日期选择器需要打开,并在其上标记第一个日期选择器中选择的日期。然后,用户必须在第二个日期选择器上选择另一个日期


如果有人知道如何做到这一点,建议和指点将是非常欢迎的

日期选择器提供了一个关闭事件,您是否可以使用它?看看这里的API 你会发现,再往下走一些线

$('.datepicker').pickadate({
onOpen: function() {
    console.log('Opened up!')
},
onClose: function() {
    console.log('Closed now')
},
onRender: function() {
    console.log('Just rendered anew')
},
onStart: function() {
    console.log('Hello there :)')
},
onStop: function() {
    console.log('See ya')
},
onSet: function(event) {
    console.log('Set stuff:', event)
}
})

当进入关闭事件时,打开一个新的日期选择器并设置当前关闭的默认值。

好的,我在这里做了一个小示例,处理关闭事件

<input type="text" class="datepicker1" />
<br />
<input type="text" class="datepicker2" />
<script type="text/javascript">
    // init second picker
    var $input = $('.datepicker2').pickadate();    
    // init first picker
    $('.datepicker1').pickadate({
        // handle close event
        onClose: function() {
            var picker = $input.pickadate('picker');
            // set unix timestamp to the second picker
            // maybe theres a better solution for this...currenlty it works
            picker.set('select', this.component.item.select.pick );
            picker.open();
        }
    });

</script>


//初始化第二选择器 变量$input=$('.datepicker2').pickadate(); //初始化第一选择器 $('.datepicker1').pickadate({ //处理关闭事件 onClose:function(){ var picker=$input.pickadate('picker'); //将unix时间戳设置为第二个选择器 //也许有一个更好的解决方案…现在它可以工作了 picker.set('select',this.component.item.select.pick); picker.open(); } });
别忘了加载所有pickadate库和jquery。。。。。 我定义了两个div,分别是datepicker1和datepicker2。然后我在创造 日期选择器对象。datepicker1对象处理onClose事件。 当第一个日期选择器关闭时,脚本将打开第二个并设置datepicker1的值

希望这有帮助


干杯

谢谢,我已经看完了,并且我已经在尝试使用start()函数,它在选择日期时被调用。我的问题是在下一个日期选择器上设置日期,以便使用者知道他已经选择了什么。