नहीं है, लेकिन यह सेटअप अपने खुद के रूप बिल्डर सहायक इस तरह के एक परिणाम प्राप्त करने के विधि के लिए काफी आसान है, एक साधारण उदाहरण होगा:
एप्लिकेशन/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
अपने सर्वर को पुनरारंभ करने के बाद आप फॉर्म बिल्डर का उपयोग करके अपने नए combobox को अपने 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>
ध्यान रखें कि दोनों आईई & सफारी एचटीएमएल 5 Datalist के लिए समर्थन नहीं करते हैं।
एक दूसरे नज़र पर एक दूसरे रुको, कि नहीं लगती है वैध एचटीएमएल की तरह, क्या आप वाकई सही हैं? – Noz
@CyleHunter डब्ल्यू 3 सी का कहना है कि इसकी वैध –