2013-02-17 148 views
5

我有以下代碼:jQuery的觸發的DatePicker更改事件

$('.custom_datepicker_selector').datepicker({ 
    weekStart: 1 
}) 
.on('changeDate', function(en) { 
    var correct_format; 
    correct_format = en.date.getFullYear() + '-' + ('0' + (en.date.getMonth() + 1)).slice(-2) + '-' + ('0' + en.date.getDate()).slice(-2); 
    $('.custom_datepicker_selector').datepicker('hide'); 
    return $(this).parent().find("input[type=hidden]").val(correct_format); 
}); 

這顯示,就像我希望它的日期格式。但是,只有在點擊日期選擇器後,纔會這樣做,而不是最初。

最初,這個日期顯示:

2013-02-17 

後,我點擊它,我得到這個:

17/02/2013 

我怎麼能立即顯示正確的日期? (上面的代碼中。就緒

我創建了一個的jsfiddle此: http://jsfiddle.net/jwxvz/

這更是一個問題的軌道比一個javascript:

我跟阿布的意見,並做了這樣的軌道:

<%= f.input :order_date, :as => :custom_datepicker, :input_html => { :value => localize(@client_order.order_date) } %> 

回答

6

你也可以定義默認的日期格式

嘗試了這一點:

$('.custom_datepicker_selector').datepicker({ 
    weekStart: 1, 
    dateFormat: 'dd/mm/yy' 
}).on('changeDate', function(en) { 
     $('.custom_datepicker_selector').datepicker('hide'); 
     return $(this).parent().find("input[type=hidden]").val(en); 
    }); 

UPDATE:(重要)

我已經看到你的jsfiddle,你卻把文本框的默認值value="2013-02-17"這就是爲什麼它表明,在起始值只是將其刪除。

+0

不這樣做,看到小提琴:http://jsfiddle.net/jwxvz/1/ – rept 2013-02-17 09:23:38

+0

見我已更新回答 – Abubakkar 2013-02-17 09:28:51

+0

該值來自Rails。我想讓日期選擇器進行格式化,這不可能嗎? – rept 2013-02-17 09:32:17

0

只是你必須使用:

$('.custom_datepicker_selector').datepicker({ 
weekStart: 1, 
dateFormat:'yy-mm-dd' 
}) 

你可以參考這裏:link