1

我是一个充满希望并对 Ruby on Rails 4 感到惊讶的新手。在我的应用程序中,我需要用户输入一系列日期。为此,我发现 bootstrap-datepicker-rails gem 非常性感。它基本上适用于个人日期,但我无法获得我想要谈论的日期范围:

开始日期默认为今天

结束日期默认为今天 + 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>

但是试图在rails中实现原始文档@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 个日期选择转换成一个范围选择吗?非常感谢 !

此致,

弗雷德

4

2 回答 2

1

尝试这个:

在 app/assets/javascripts/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/assets/javascripts/application.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

于 2013-10-15T21:14:17.657 回答
0

感谢 Nerian 和 eternicode 的解释,我能够构建正确的语法,以在 Ruby on Rails 4 表单中实现日期选择器。

以下示例允许用户为某些记录有效性设置日期范围:

日期范围格式为 dd/mm/yyyy

数据行为适用于整个 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>

非常感谢你们!

此致,

弗雷德

于 2013-10-24T21:20:06.323 回答