ruby-on-rails – RoR 3.2.8:是否有HTML5组合框助手?
发布时间:2020-12-17 03:15:27 所属栏目:百科 来源:网络整理
导读:现在,我正在使用form_for.select和options_for_select rails helpers来创建一个包含模型数据的选择框.但是,我真正需要的是像 HTML5中引入的组合框: input type=text list=browsers datalist id=browsers option Google option IE9/datalist 是否有用于创建
现在,我正在使用form_for.select和options_for_select rails helpers来创建一个包含模型数据的选择框.但是,我真正需要的是像
HTML5中引入的组合框:
<input type=text list=browsers > <datalist id=browsers > <option> Google <option> IE9 </datalist> 是否有用于创建此类元素的rails帮助程序? 解决方法
不,但是设置自己的表单构建器帮助器方法来实现这样的结果非常容易,一个简单的例子是:
应用程序/ form_builders / combobox_form_builder.rb class ComboboxFormBuilder < ActionView::Helpers::FormBuilder include ActionView::Context # for nested content_tag include ActionView::Helpers::FormTagHelper #for sanitize_to_id method access def combobox_tag(name,options,opts= {}) @template.content_tag(:input,:name => name,:id => sanitize_to_id(name),:type => "text",:list => opts[:list_id]) do content_tag(:datalist,:id => opts[:list_id]) {options} end end end 重新启动服务器后,您可以使用表单构建器通过在form_for调用中指定构建器参数来实现新的组合框: <%= form_for @foo,builder: ComboboxFormBuilder do |f| %> <%= f.combobox_tag(:browser,options_for_select(["Firefox","Chrome","IE9"]),:list_id => "list")%> <% end %> 输出HTML: <input type="text" name="browser" list="list" id="browser"> <datalist id="list"> <option value="Firefox">Firefox</option> <option value="Chrome">Chrome</option> <option value="IE9">IE9</option> </datalist> 请记住,IE& Safari不支持HTML5 Datalist. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c# – CRM 2011 PLUGIN – PostTaskSetState
- objective-c – 如何访问用户定义的Xcode构建设置?
- ruby-on-rails-3 – Rails3:避免使用Ancestry Gem选择n 1?
- Oracle SQL – 从字符串中删除部分重复
- C#复制正在写入的文件
- vue中手机号,邮箱正则验证以及60s发送验证码的实例
- Oracle : the Network Adapter could not establish the co
- postgresql 随笔
- postgresql – 我应该激活c3p0语句池?
- reactjs – react-dnd的connectDragPreview()如何工作?