2015-05-27 40 views
0

我注意到我的應用程序中有一些奇怪的東西。使用datetimepicker在rails 4中重載頁面後更改日期格式

當我進入到主畫面的位置: http://leszczyna.wzks.uj.edu.pl/12_stolarski/events_for_seniors/ 和搜索點擊第二個領域,挑事,出現的日期格式爲「DD-MM-YYYY」。

但是,當我點擊左上角的'Wydarzenia dlaseniorów'日期格式將更改爲'dd/mm/yyyy'。 我注意到locale出現在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 
    }) 
} 
+0

粘貼您的視圖代碼 –

+0

粘貼添加日期選擇以日期字段 – Kamesh

+0

是什麼則params的值jQuery代碼[:日期]? –

回答

1

它的發生是由於turbolinks,關閉turbolinks的頂部左上角'Wydarzenia dlaseniorów'鏈接。在標題中,您的鏈接以navbar-header類的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); 

這是最好的解決方案。

希望這會有所幫助!

+1

謝謝@RSB,你的回答解決了我的問題! – stolarz

+0

嗨@RSB,你能看看我的新搜索表單嗎?我已經改變了日期或城市,但日期選擇器再次不能正常工作。 這裏是鏈接: http://leszczyna.wzks.uj.edu.pl/12_stolarski/events_for_seniors/pl/events?utf8=%E2%9C%93&search=Krak%C3%B3w&start_date=11-06-2015 問題是與datepicker,當你點擊它它改變到另一種格式和年份設置爲1911年。也許我需要添加no turbolinks某處? 我已經添加到我的JS你的解決方案,更改body.homepage body.events,但它沒有奏效。 – stolarz

1

通過在表單中​​添加以下代碼可以解決您的問題。

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