5

我有以下代码用于选择一个日期,然后我想将其转换为周数。

    $(".calendar").datepicker({
        showWeek: true,
        onSelect: function(dateText, inst) {
            dateFormat: "'Week Number '" + $.datepicker.iso8601Week(new Date(dateText)),
            alert($.datepicker.iso8601Week(new Date(dateText)))
        }
    });

警报显示正确的周数,但日期根本没有重新格式化。

我不能将 dateFormat 函数移到 onSelect 之外,因为这不会导致任何事情发生。

我想要实现的是在文本字段中显示“第 13 周”之类的内容

有任何想法吗?

http://jsfiddle.net/ENG66/

4

3 回答 3

7

我已经更新了小提琴以使其工作:http: //jsfiddle.net/ENG66/11/

在 onselect 事件中,需要使用 .val() 覆盖文本框值的设置

$(".calendar").datepicker({
        showWeek: true,
        onSelect: function(dateText, inst) {
            $(this).val("'Week Number '" + $.datepicker.iso8601Week(new Date(dateText)));
        }
    });​

编辑

正如 Igor Shastin 在下面的评论中指出的那样,我们已经有了文本框inst.input

inst.input.val($.datepicker.iso8601Week(new Date(dateText)));
于 2012-09-20T15:26:35.760 回答
2

试试这个jsFiddle 示例

$(".calendar").datepicker({
    showWeek: true,
    onSelect: function(dateText, inst) {
        dateFormat: "'Week Number '" + $.datepicker.iso8601Week(new Date(dateText)),
        $(this).val('Week:' + $.datepicker.iso8601Week(new Date(dateText)));
    }
});​
于 2012-09-20T15:22:56.813 回答
0

上面的答案假设日期格式可以由 Javascript 本地处理。对于较短的欧洲日期(dd/mm/yyyy,而不是美国的 mm/dd/yyyy),您可以通过 datepicker 本身获取日期值,它将自动处理转换。

$("#week_field").val( $.datepicker.iso8601Week( $("#date_field").datepicker( "getDate" ) ));

您可以像这样为 datepicker 设置不同的日期格式

$.datepicker.setDefaults( {dateFormat : "dd/mm/yy"} );
于 2016-09-10T15:22:25.760 回答