2010-07-12 60 views
2

我正在使用我的一种形式的Rails帮手datetime_select。我目前有要求将day,year,hourminute的下拉列表更改为带验证的文本框。有没有一种方法可以指定我需要这些字段的文本框?或者可能是不同的帮手,会做我所需要的?如何修改Rails datetime_select帮助程序的输入类型?

这里是我的用法:

datetime_select(:campaign, :start_date, :order => [:day, :month, :year, :hour, :minute]) 

回答

4

如何滚动自己的简单的帮手,就像

def datetime_text_fields(object_name, method) 
    html = text_field_tag("#{object_name}[#{method}(3i)]", Date.today.day.to_s, :length => 2) 
    html << select_month(Date.today, :field_name => "#{object_name}[#{method}(2i)]") 
    html << text_field_tag("#{object_name}[#{method}(1i)]", Date.today.year.to_s, :length => 4) 
    html << " " 
    html << text_field_tag("#{object_name}[#{method}(4i)]", Time.now.hour.to_s, :length => 2) 
    html << ":" 
    html << text_field_tag("#{object_name}[#{method}(5i)]", Time.now.min.to_s, :length => 2) 
end 

随意添加更多格式的东西/分离器等,但它基本上返回到正确的领域导轨名称被标识为DateTime。 Rails的预计,命名为喜欢date(1i)领域,1I =年,2I =月等

老实说,我没有测试或任何东西,但在控制台输出看起来相当有说服力;)

0

为什么不推出自己的,只需使用日期选择器帮助程序的相同方式命名输入字段,并在滚动自定义前端时获得所有后端优势。或者使用:order让你的日期选择器给出月份选择,并为其他输入使用一些javascript魔术。

你可以使用jQuery的日期选择器并使用与rails datepicker相同的命名约定来填充隐藏的字段。