Date_field:如何在使用Bootstrap datepicker时设置最大日期?

时间:2015-07-16 17:40:43

标签: javascript ruby-on-rails ruby ruby-on-rails-4 datepicker

对于日期变量,我在我的应用的不同位置有以下代码:

<%= f.date_field :date, required: true, 'data-provide': 'datepicker' %>
<%= f.text_field :date, required: true, 'data-provide': 'datepicker' %>

因此,在某些情况下,它使用date_field,而在其他情况下使用text_field。它使用Bootstrap datepicker。

我想添加一个允许选择的最长日期。 Date_field提供选项max来设置此选项。但是,当我添加这个时,我仍然可以选择将来的任何一天。所以这不起作用,我认为这可能是因为Bootstrap datepicker。所以我还添加了datepicker提供的方法endDate

我现在有了下面的代码,但我仍然可以选择我想要的任何日期。有谁看到我做错了什么?

<% end_date = Time.zone.now + 100.days %>
<%= f.date_field :date, required: true, 'data-provide': 'datepicker', max: end_date, id: 'date' %>
<script type="text/javascript">
  $(document).ready(function(){
    $('#date').datepicker({
      endDate: end_date;
    });
  });
</script>

<%= f.text_field :date, required: true, 'data-provide': 'datepicker', id: 'date' %>
# Using the same JavaScript code

1 个答案:

答案 0 :(得分:2)

编写代码的方式是,将文字字符串“end_date”放入javascript中。如果你想要这个是ruby,你需要将它包装在<%= %>括号中。话虽这么说,bootstrap datepicker的语法是使用一个后跟'd'的数字。尝试:

  $('#date').datepicker({
    endDate: "+100d";
  });