2012-09-20 70 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"});