【问题标题】:Selecting date and time with a datepicker for the date but with time immediately visible in Rails使用日期选择器选择日期和时间,但时间在 Rails 中立即可见
【发布时间】:2015-11-13 12:06:00
【问题描述】:

我使用的是 Rails 4,还有 Twitter Bootstrap。

我想用日期选择器选择日期,但有一个单独可见的组件来选择小时和分钟。

我查看了 smalot bootstrap-datetimepicker https://github.com/smalot/bootstrap-datetimepicker ,但查看了 Demo Page,它们没有表现出任何单独显示日期和时间的能力。必须先选择日期,然后再选择时间,感觉不是很直观。

我也查看了 Eonasdan bootstrap-datetimepicker https://github.com/Eonasdan/bootstrap-datetimepicker ,但为它挑选的时间,即使在 inline mode 中,也不直观 - 人们会知道他们只需点击小时值即可更改它吗?

我正在考虑仅使用日期选择器来选择日期,并自己选择小时和分钟,但是将日期时间的一部分交给 gem/library 并自己处理其余部分感觉有点不对劲.

我遇到了Separate date and time form fields in Rails,这是在问这种问题,但这是2010年9月的问题。

如何使用日期选择器选择日期,但又可以简单且立即看到时间选择?

【问题讨论】:

  • IMO,像这样的时间选择器很傻,一个完全独立的字段只允许手动输入时间,但也有一个 select2-esque 自动完成是我认为最终效果最好的。 Google 地图在这方面做得很好 (screenshots)
  • 您可以查看pickadate.js。我已经用过很多次了,它派上用场了。

标签: ruby-on-rails datetime datepicker


【解决方案1】:

首先,除非你找到一个插件可以完成你想要的工作,然后是的,由你来处理它,是的,感觉有点不对 - 取决于你如何做。

不确定您的想法,但感觉“最错误”的方式是,如果您的表单在后台有一个“日期时间”字段,并且您使用 javascript 将插件中的日期和您自己设置的时间,并将它们存储在您的日期时间字段中。这样做的好处是您的 rails 应用程序只获得了一个日期时间字段,并且确切地知道如何处理它。

这是我的处理方法:

请记住,表单不一定必须与您的模型进行一对一的映射,我会将其拆分到控制器层,并从概念上考虑“具有两个字段的表单:日期和时间” ,然后在您的控制器(或表单对象,这可能更适合这种情况)中,您将日期和时间拼接在一起,然后将它们保存到您的模型中。这种方法意味着您可以对每个字段进行单独验证,这可能也是您想要的(因为我假设用户可以输入有效日期,但输入无效时间,反之亦然)。

就使用插件处理日期和您自己处理时间而言,现在很好 - 从您的表单的角度来看,它们是两个完全独立的字段,因此没有什么不妥之处。这只是意味着您需要控制器层中的额外逻辑来在显示表单时拆分日期时间,并在保存表单时将日期和时间合并回一个。

编辑:如果您还没有听说过表单对象,请查看 https://github.com/apotonick/reformhttp://railscasts.com/episodes/416-form-objects

【讨论】:

    猜你喜欢
    • 2012-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-14
    • 1970-01-01
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    相关资源
    最近更新 更多