簡體   English   中英

jQuery觸發DatePicker更改事件

[英]jQuery trigger a DatePicker change event

我有以下代碼:

$('.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);
});

這會像我想要的那樣顯示日期格式。 但是它只在我點擊datepicker后才這樣做,而不是最初。

最初顯示此日期:

2013-02-17

在我點擊之后我得到了這個:

17/02/2013

如何立即顯示正確的日期? (上面的代碼在.ready中

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

這比javascript更像是一個rails問題:

我遵循abu建議並在rails中這樣做:

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

您也可以定義默認日期格式。

試試這個:

$('.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);
   });

更新:(重要)

我已經看過你的JSFiddle,你已經將文本框的默認值保持為value="2013-02-17" ,這就是為什么它顯示開始時的值只是刪除它。

只是你必須使用:

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

你可以在這里參考: 鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM