2012-09-20 76 views
4

我有以下代码选择一个日期,然后我想要转换为一个星期的数字。选择使用jquery datepicker挑选的日期的一周号

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

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

我不能移动onSelect之外的dateFormat函数,因为这不会导致任何结果。

我想实现的是文本字段说类似“周数13”

任何想法?

http://jsfiddle.net/ENG66/

+0

有一个的jsfiddle日期选择器? :-) – pecka85

+0

补充说...谢谢你的支持! – Tom

+0

我不太清楚我是否了解这里的目标。你想达到什么目的?显示周数而不是输入字段中的日期? – pecka85

回答

6

我已经更新了小提琴,使其工作: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.val($.datepicker.iso8601Week(new Date(dateText))); 
+0

我认为这是稍微好一点的解决方案,只要我们已经有元素:http://jsfiddle.net/ENG66/12/ –

+0

@Igor Shastin - 发布它,我很乐意投它。 –

+1

随时更新您的文章与我的代码,我不介意,特别是因为您的帖子被标记为答案。 –

2

试试这个jsFiddle example

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

以上答案假定日期格式可以由Javascript本地处理。在欧洲日期较短的情况下(日/月/年),您可以通过datepicker本身获取日期值,这将自动处理转换。

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

您可以设置不同的日期格式,这样

$.datepicker.setDefaults({dateFormat : "dd/mm/yy"});