对于日期变量,我在我的应用的不同位置有以下代码:
<%= 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
答案 0 :(得分:2)
编写代码的方式是,将文字字符串“end_date”放入javascript中。如果你想要这个是ruby,你需要将它包装在<%= %>
括号中。话虽这么说,bootstrap datepicker的语法是使用一个后跟'd'的数字。尝试:
$('#date').datepicker({
endDate: "+100d";
});