【问题标题】:Rails date_select as single pulldown instead of three?Rails date_select 作为单个下拉而不是三个?
【发布时间】:2010-12-22 06:24:19
【问题描述】:

Rails 中当前的 date_select 表单助手创建了三个下拉菜单,用于选择日期的月份、日期和年份。是否有一个带有日期列表的下拉菜单?

例如,从“2011 年 1 月 1 日”到“2011 年 1 月 30 日”的未来 30 天的列表?

【问题讨论】:

  • 我认为您必须编写自己的助手.. 应该不会太难。祝你好运:-)

标签: ruby-on-rails datetime forms


【解决方案1】:

虽然不是选择/下拉控件,但替代选项是jQuery datepicker。 使用它,您可以这样做:

您的日期字段:

<%= f.text_field :some_date %> # => presume that element id is some_date_id

你可以像这样向它添加一个下拉日历:

<script type="text/javascript">
  $(function() {
    $( "#some_date_id" ).datepicker();
  });
</script>

【讨论】:

  • jQuery 是解决这个问题的方法。对 Zabba 编写的代码的一个建议 - 为日期字段分配一个特定的类(例如:class=>"useDatePicker" 和 document.onReady,执行 $(".useDatePicker").datepicker()。我找到了这个成为在整个应用程序中分配日期选择器的好方法,而不必担心 ID
【解决方案2】:

使用 select_tag 并为其提供日期数组,而不是编写 date_select_tag。

select_tag "invoice_date", options_from_collection_for_select(@array_of_dates,:first,:first)

不确定您是如何使用该表单的。也许如果您发布该 sn-p,可以提供更具体和正确的答案。

如果您需要 date_select 以不同的方式工作,您需要覆盖帮助器并滚动您自己的。如果你只是想在你的应用程序中使用某些功能,而不是对更改 Rails 本身感兴趣,请选择 select_tag 选项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-08
    • 2012-07-01
    • 1970-01-01
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    • 2017-04-09
    相关资源
    最近更新 更多