代码之家  ›  专栏  ›  技术社区  ›  JoshReedSchramm

Rails datetime带有用于日期和时间下拉列表的单个文本框

  •  4
  • JoshReedSchramm  · 技术社区  · 15 年前

    我有一个rails表单,它有一个datetime输入。

    我想将日期输入设为一个文本框,用户将以MM/DD/YYYY格式(或通过jQuery日期选择器)输入,然后将时间输入设为基于12小时的时间下拉列表。我找到了这个插件- http://code.google.com/p/rails-twelve-hour-time-plugin/ -处理12小时的时间部分,但我不知道如何使日期(只有日期)一个单一的文本框。

    我可以通过这个插件把它变成多个文本框而不是多个下拉列表- http://www.railslodge.com/plugins/981-date-time-text-field-helpers

    1 回复  |  直到 15 年前
        1
  •  2
  •   Draiken    15 年前

    在单个textfield中,您只能通过javascript掩码来实现这一点,即在输入字段中创建包含日期每个部分的隐藏字段。

    如果无论如何都要使用javascript,使用它来选择日期或信任用户以指定的格式输入日期,这两种情况都会给您一个格式化的字符串,因此您可以简单地用

    # params[:date_as_str] = "2010/07/29 10:00 AM"
    object.date = DateTime.strptime(params[:date_as_str], "%Y/%m/%d %H:%M %p")
    

    您还可以创建一个自定义帮助程序,在单个文本字段上生成javascript的“掩码”。