使用 datetimepicker 在 rails 4 中重新加载页面后日期格式发生变化

Date format changing after reload page in rails 4 using datetimepicker

我发现我的应用程序有些奇怪。

当我在这里进入主页时: http://leszczyna.wzks.uj.edu.pl/12_stolarski/events_for_seniors/ 然后单击搜索中的第二个字段并选择内容,出现的日期格式为“dd-mm-yyyy”。

但是当我单击左上角时 'Wydarzenia dla seniorów' 日期格式正在更改为“dd/mm/yyyy”。 我注意到语言环境出现在 URL 中,但不知道它是否会影响该行为。

而且,当我之后刷新页面时,日期格式开始了。

什么会导致该输入的奇怪行为?

编辑

我认为的代码:

<div class="form-group">
      <label class="sr-only" for="date">Email</label>
      <%= text_field_tag :date,
                         params[:date],
                         placeholder: 'Kliknij, aby wybrać datę',
                         class: 'form-control input-lg date',
                         :data => {
                                 provide: 'datepicker'
                         }
      %>
    </div>

还有我的 javascript:

    /* Search date */
if ($('body.homepage').length) {
    $('.date').datepicker({
        'language': "pl",
        'todayHighlight': true,
        'format': 'dd-mm-yyyy',
        'autoclose': true
    })
}

这是由于 turbolinks 而发生的,关闭 left-hand 顶角 'Wydarzenia dla seniorów' link 的 turbolinks。在 header 中,您的 link 出现在带有 navbar-header class 的 div 下。向 div 元素添加 data-no-turbolink,示例如下

<div class="navbar-header" data-no-turbolink>

这将解决您的问题!

在您的 js 文件中,像这样加载 javascript

ready = function(){

  /* Search date */
  if ($('body.homepage').length) {
    $('.date').datepicker({
        'language': "pl",
        'todayHighlight': true,
        'format': 'dd-mm-yyyy',
        'autoclose': true
    });
  }  
}
$(document).ready(ready);
$(document).on('page:load', ready);

这是最好的解决方案。

希望对您有所帮助!

在您的表单中添加以下代码将解决您的问题。

<script type="text/javascript"> 
  $( document ).ready(function() { 
    $("#date").datepicker({ 
      'language': "pl",
      'todayHighlight': true,
      'format': 'dd-mm-yyyy',
      'autoclose': true
    }) 
  }); 
</script>