Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery触发日期选择器更改事件_Javascript_Ruby On Rails 3_Jquery Ui - Fatal编程技术网

Javascript jQuery触发日期选择器更改事件

Javascript jQuery触发日期选择器更改事件,javascript,ruby-on-rails-3,jquery-ui,Javascript,Ruby On Rails 3,Jquery Ui,我有以下代码: $('.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(

我有以下代码:

$('.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
如何立即显示正确的日期?(以上代码位于.ready中。)

我为此创建了一个JSFIDLE:

这与其说是javascript,不如说是rails的问题:

我遵循阿布的建议,在rails中这样做:

<%= f.input :order_date, :as => :custom_datepicker, :input_html =>  { :value => localize(@client_order.order_date) } %>
:custom\u datepicker,:input\u html=>{:value=>localize(@client\u order.order\u 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);
   });
更新:(重要)

我看到了您的JSFIDLE,您将文本框的默认值保留为
value=“2013-02-17”
,这就是为什么它在开始时显示该值,只需将其删除即可。

只需使用:

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

您可以在此处引用:

该值来自Rails。我希望datepicker进行格式化,不是吗?如果该值来自Rails,则必须进行格式化