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

Date_field: how to set maximum date while using Bootstrap datepicker?

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

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

所以在某些情况下它使用 date_field 而在其他情况下使用 text_field。它使用 Bootstrap 日期选择器。

我想添加允许select编辑的最大日期。 Date_field 提供选项 max 来设置它。但是,当我添加这个时,我仍然可以在未来的任何一天 select。所以这不起作用,我认为这可能是因为 Bootstrap datepicker。所以我也添加了datepicker提供的方法即endDate.

我现在有下面的代码,但我仍然可以 select 我想在未来的任何日期。有人看到我做错了什么吗?

<% 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

您的代码编写方式是将文字字符串 "end_date" 放入您的 javascript。如果您希望它是 ruby,则需要将其括在 <%= %> 括号中。也就是说,bootstrap 日期选择器的语法是使用数字后跟 'd'。尝试:

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