10

我们在我的工作场所使用 jquery UI 1.8.23。

如何捕获在 datepicker 中单击的日期,以便将当前日期格式化为日期戳并将该值传递到隐藏的表单字段中?

这是我试图开始工作的一些代码:

$('.ui-state-default').live('click', function(){
    console.log('date clicked');
    var currentdate = $(this).text();
    var d = currentdate;
    var m = monthFormat($('.ui-datepicker-month').text());
    var y = $('.ui-datepicker-year').text();
    $('a.ui-state-default').removeClass('ui-state-highlight');
    $(this).addClass('ui-state-highlight');

    if (currentdate.length < 2) {
    d = "0" + currentdate;
    }
    var datestamp = y + "-" + m + "-" + d;
    console.log(datestamp);
    $('#dateHidden').val(datestamp);
});

感谢您查看我的代码,感谢你们提供的任何帮助。

4

4 回答 4

21

您无需执行任何操作来格式化日期。该DatePicker小部件为您完成。只需使用altFieldandaltFormat属性:

$("#myDatePicker").datepicker({
    // The hidden field to receive the date
    altField: "#dateHidden",
    // The format you want
    altFormat: "yy-mm-dd",
    // The format the user actually sees
    dateFormat: "dd/mm/yy",
    onSelect: function (date) {
        // Your CSS changes, just in case you still need them
        $('a.ui-state-default').removeClass('ui-state-highlight');
        $(this).addClass('ui-state-highlight');
    }
});

文档:

http://api.jqueryui.com/datepicker/#option-altField

http://api.jqueryui.com/datepicker/#option-altFormat

示范:

http://jsfiddle.net/sFBn2/10/

于 2013-09-05T15:21:02.043 回答
2
$('#calendar').datepicker({
        inline: true,
        firstDay: 1,
        changeMonth: false,
        changeYear: true,
        showOtherMonths: true,
        showMonthAfterYear: false,
        yearRange: "2015:2025",      
        dayNamesMin: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
        dateFormat: "yy-mm-dd",
        onSelect: function (date) {
            alert(date);
        }
    });
于 2015-05-05T05:27:34.140 回答
1

jQueryDatepicker提供了格式化日期的选项。那你为什么不利用它呢?

$('element').datepicker({ dateFormat: 'dd-mm-yy' });

此外,您不需要单独的方法来捕获点击事件。你默认的方法onSelect

$('input').datepicker({
 dateFormat: 'yy-mm-dd',
    onSelect: function (date) {
    //defined your own method here
    alert(date);
    }
})

检查这个JSFiddle

于 2013-09-05T15:25:18.913 回答
0

你的日期选择器会听。

参见onSelect() 函数

选择日期选择器时调用。该函数接收选定的日期作为文本和 datepicker 实例作为参数。这指的是关联的输入字段。

$('.date-pick').datepicker( {
    onSelect: function(date) {
        //play with date here
    },
----
----
---
于 2013-09-05T15:20:29.443 回答