0

我正在使用这个插件

我有以下 HTML 和 JavaScript:

<div>
    <div>
        <div>Departure:</div>
        <div><input name="departureDateInput" value="#{bean.getFormattedFromDate()}" class="datepicker datepicker1"></input></div>
    </div>

    <div>
        <div>Return:</div>
        <div><input name="returnDateInput" value="#{bean.getFormattedToDate()}" class="datepicker datepicker2"></input></div>
    </div>
</div>

<script>
    var $input2 = $(".datepicker1").pickadate({
        format: 'dd-mm-yyyy',
        min: 1,
        today: '',
        onClose: function() {
            var picker = $input.pickadate("picker");

            picker.set("select", this.component.item.select.pick);
            picker.open();

        }
    });

    var $input = $('.datepicker2').pickadate({
        format: 'dd-mm-yyyy',
        min: 1,
        today: '',
        onClose: function() {
            $("#departureDateInput").text($input2.val());
            $("#returnDateInput").text($input.val());
        }
    });
</script>

上面的渲染结果是 2 个输入字段,每个字段都有自己的日期选择器。第一次输入选择日期后,自动显示第二个,用户可以选择一个日期。

功能很好,但我只想向用户显示一个输入,该输入将填充起始日期和结束日期,例如13-06-2013 - 15-06-2013

我不知道如何实现这一点。有没有人有什么建议?

4

2 回答 2

3

这是一个工作示例,但使用 jQuery UI:http: //jsfiddle.net/kcCUD/10/

$(function() {
    var date1 = $('#date1');
    var date2 = $('#date2');
    date1.datepicker({
        defaultDate: "+1w",
        changeMonth: true,
        numberOfMonths: 1,
        onClose: function( selectedDate ) {
            var date = $(this).datepicker("getDate");

            date2.datepicker("setDate", date);
            date2.datepicker( "show" );

        }
    });
    date2.datepicker({
        defaultDate: "+1w",
        changeMonth: true,
        numberOfMonths: 1,
        onClose: function( selectedDate ) {
            var date = $(this).datepicker("getDate");
            var formattedDate = $.datepicker.formatDate('mm/dd/yy', date);

            date1.val(date1.val() + " - " + formattedDate);
        }
    });
});

HTML:

<input id="date1" value="" size="30" />
<input id="date2" style="visibility:hidden" value="" />
于 2013-09-25T14:29:01.607 回答
1

为什么不将它们作为两个单独的日期选择器,而是将它们设置为一个...没有左边框。

这样,一旦提交表单,您仍然可以将两个值作为单独的值传递。

于 2013-09-25T14:12:27.233 回答