2013-02-17 16 views
5

Mam następujący kod:jQuery wyzwalać zdarzenia zmiany 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); 
}); 

Wyświetla format daty, tak jak chcę go. Jednak robi to tylko po kliknięciu na datepicker, a nie początkowo.

Początkowo termin ten jest pokazany:

2013-02-17 

i po kliknięciu na nim uzyskać to:

17/02/2013 

Jak mogę natychmiast wyświetla poprawną datę? (Powyższy kod jest w .ready

stworzyłem jsFiddle na to: http://jsfiddle.net/jwxvz/

To było bardziej problemem niż szyny javascript:

Śledziłem porady abu i zrobił to tak w szyn.

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

Odpowiedz

6

można określić domyślny format daty również

Spróbuj tego:

$('.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: (ważne)

Widziałem swoją JSFiddle, Ty zachowałeś domyślną wartość pola tekstowego jako value="2013-02-17" Dlatego to pokazuje, że wartość na początku tylko go usunąć.

+0

Nie to zrobić, zobacz skrzypce: http://jsfiddle.net/jwxvz/1/ – rept

+0

zobaczyć moje zaktualizowana odpowiedź – Abubakkar

+0

Ta wartość pochodzi z Rails. Chcę, aby datepicker wykonał formatowanie, czy nie jest to możliwe? – rept

0

prostu trzeba użyć:

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

można odwoływać się tutaj: link