1

我是一個充滿希望的新手,並且對Ruby on Rails 4感到驚訝。 在我的應用程序中,我需要用戶輸入一系列日期。爲此,我發現bootstrap-datepicker-rails gem非常性感。它基本上工作正常蹦牀網上單日期,但我不能設法得到我想要談論的日期範圍:如何從bootstrap-datepicker-rails獲取範圍?

起始日期默認爲今天

結束日期默認爲今天+ 1年,必須大於開始日期。

日期格式爲DD/MM/YYYY

我開始用這段代碼效果很好:

<div class="field"> 
    <%= f.label :active_from %><br> 
    <%= f.text_field :active_from, 'data-behaviour' => 'datepicker', 'data-date-format' => 'dd/mm/yyyy'%> 
    <script type="text/javascript"> 
    $('[data-behaviour~=datepicker]').datepicker(); 
    </script> 
</div> 
<div class="field"> 
    <%= f.label :active_to %><br> 
    <%= f.text_field :active_to, 'data-behaviour' => 'datepicker', 'data-date-format' => 'dd/mm/yyyy'%> 
    <script type="text/javascript"> 
    $('[data-behaviour~=datepicker]').datepicker(); 
    </script> 
</div> 

但試圖實現在軌的代碼的日期範圍輸入實例發現原始文檔@ github,我搞砸了:星號和結束日期之間沒有交互。

<div class="input-daterange"> 
    <%= f.text_field :active_from, 'data-behaviour' => 'datepicker', 'data-date-format' => 'dd/mm/yyyy', 'value' => DateTime.now.strftime("%d/%m/%Y") %> 
    <span class="add-on">to</span> 
    <%= f.text_field :active_to, 'data-behaviour' => 'datepicker', 'data-date-format' => 'dd/mm/yyyy', 'value' => (DateTime.now + 1.years).strftime("%d/%m/%Y") %> 
    <script type="text/javascript"> 
     $('[data-behaviour~=datepicker]').datepicker(); 
    </script> 
</div> 

你能幫我把我的2日期選擇轉換成範圍選擇嗎? 非常感謝!

最好的問候,

弗雷德

回答

1

試試這個:

在app /資產/ Java腳本/ main.js

// This initializes all elements that have data-behaviour=datepicker as a datepicker.  
// There is no need to repeat this statement anywhere else. 
$(document).ready(function(){ 
    $('[data-behaviour~=datepicker]').datepicker(); 
}) 

在app /資產/ Java腳本/應用程序添加此.js

//= require main 

在你看來:

<div class="input-daterange" data-behaviour='datepicker' id="datepicker"> 
    <input type="text" class="input-small" name="start" /> 
    <span class="add-on">to</span> 
    <input type="text" class="input-small" name="end" /> 
</div> 

文檔:

http://eternicode.github.io/bootstrap-datepicker/?markup=range&format=&weekStart=&startDate=&endDate=&startView=0&minViewMode=0&todayBtn=false&language=en&orientation=auto&keyboardNavigation=on&forceParse=on#sandbox

+0

Nerian您好,感謝的代碼。它顯示正常,但我仍然有問題。我寫道:

to
。行爲在那裏,但它不會更新我的active_from和active_to字段。 Rails語法會是什麼? – user1185081

+0

@ user1185081所以顯示日期選擇器,但是當你選擇一個日期時,輸入不會被更新?在js控制檯中是否有任何錯誤消息? – Nerian

+0

我相信@Nerian試圖證明的主要觀點是你想在'.input-daterange'元素上實例化datepicker,而不是內部輸入。在你的例子中,這意味着將'data-behavior =「datepicker」'屬性從輸入移動到包含div。 – eternicode

0

承蒙Nerian和eternicode的解釋,我是能夠建立正確的語法在一個Ruby實現的日期選擇器Rails 4的形式。

按照實施例允許用戶設置對於某些記錄有效性的時間範圍:

的日期範圍的格式爲日/月/年

數據行爲應用於整個DIV

<div class="input-daterange" data-behaviour="datepicker" id="datepicker" data-date-format="dd/mm/yyyy"> 
    <%= f.text_field :active_from, :class => "input-small" %> 
    <span class="add-on">to</span> 
    <%= f.text_field :active_to, :class => "input-small" %> 
</div> 
<script type="text/javascript"> 
    $('[data-behaviour~=datepicker]').datepicker(); 
</script> 

非常感謝你們!

最好的問候,

弗雷德