【问题标题】:JQuery datePicker SelectMultiple format dd/mm/yyJQuery datePicker Select多种格式dd/mm/yy
【发布时间】:2012-11-24 10:42:49
【问题描述】:

让 datePicker 可以选择多个日期。当用户选择多个日期并关闭日历时,文本框以以下格式显示日期:

Thur Jan 03 2013 00:00:00 GMT +0000
Fri Jan 03 2013 00:00:00 GMT +0000
Sat Jan 04 2013 00:00:00 GMT +0000,

我的代码:

<script>

            $("#HolidayDate").addClass('date-pick');
            $('.date-pick').datePicker//({dateFormat: 'dd-mm-yy'}).val();
            (
                    {
                        createButton: false,
                        displayClose: true,
                        closeOnSelect: false,
                        selectMultiple: true,                  
                    }
            )
            .bind(
                'click',
                function () {
                    $(this).dpDisplay();
                    this.blur();
                    return false;
                }
            )
            .bind(
                'dateSelected',
                function (e, selectedDate, $td, state) {
                    console.log('You ' + (state ? '' : 'un') // wrap
                        + 'selected ' + selectedDate);
                }
            )
            .bind(
                'dpClosed',
                function (e, selectedDates) {
                    console.log('You closed the date picker and the ' // wrap
                        + 'currently selected dates are:');
                    console.log(selectedDates);
                    $('#HolidayDate').val( selectedDates );
                }
            );

    </script>

但是我希望日期显示为 dd-mm-yy。 如果我使用注释掉的行

$('.date-pick').datePicker//({dateFormat: 'dd-mm-yy'}).val();

and run it as    $('.date-pick').datePicker({dateFormat: 'dd-mm-yy'}).val();

文本框将以正确的格式返回日期,但现在它只允许我一次选择一个日期。

请指教?

谢谢

【问题讨论】:

    标签: jquery jquery-plugins datepicker jquery-ui-datepicker


    【解决方案1】:

    尝试使用 .bind(Date.format = 'dd-mm-yyyy') 选择日期格式 并使用 selectMultiple: true

    【讨论】:

    • 谢谢你的回复abhi...你的意思是这样吗... .bind(Date.format = 'dd-mm-yyyy') 'click', function () { $(this ).dpDisplay(); this.blur();返回假; } )....还是不开心,有什么建议吗?
    【解决方案2】:

    这是因为你留下了选项说它是一个 selectmultiple。

    试试

    $('.date-pick').datePicker
                (
                        {
                            createButton: false,
                            displayClose: true,
                            closeOnSelect: false,
                            selectMultiple: true,   
                            dateFormat: 'dd-mm-yy'               
                        }
                )
    

    看到我将它添加到您之前的选项中了吗?

    编辑

    在阅读 kelvinlucks 文档后,我知道是什么导致了您的问题。您返回的日期是 javascript Date 对象而不是字符串。您可以随意格式化它,但在您的重载方法 dateSelected 和 dpClosed 中,它们只是在没有格式化的情况下打印。

    试试这个:

    .bind(
        'dateSelected',
        function(e, selectedDate, $td, state)
        {
            var date = selectedDate.getDate() + "-" + (selectedDate.getMonth() + 1) + "-" +     selectedDate.getFullYear();
            console.log('You ' + (state ? '' : 'un') // wrap
                + 'selected ' + date);
    
        }
    )
    

    我的日期格式不太好,但你明白了。这是关于格式化日期的帖子 (http://stackoverflow.com/questions/1056728/formatting-a-date-in-javascript)

    【讨论】:

    • 感谢 jonas 的回复......对不起,但我应该提到我之前也尝试过,但没有快乐......虽然不明白为什么......有什么建议吗?谢谢
    • 您使用的是什么版本的 datepicker (jquery ui)?我在文档 api.jqueryui.com/datepicker 中看不到 optino “selectMultiple”
    • jquery ui 似乎不支持选择多个日期。但是为什么要重新发明轮子,很多人已经为此做出了解决方案。例如看看multidatespickr.sourceforge.net
    • 感谢您的回复。我正在使用我在kelvinluck.com/assets/jquery/datePicker/v2/demo/… 上找到的日期选择器的插件,它允许我选择多个日期并将列表返回到文本框,但是我正在尝试更改从 2013 年 1 月 3 日星期四 00 返回的日期格式:00:00 GMT +0000 Fri Jan 03 2013 00:00:00 GMT +0000 Sat Jan 04 00:00:00 GMT +0000, to dd/mm/yy, dd/mm/yy, dd/mm/yy
    • 你看到我更新了我的评论吗?你明白了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多