mirror of
https://github.com/github/rails.git
synced 2026-01-26 06:48:59 -05:00
Ensure select_tag#name attribute uses [] when :multiple is true. [#1146 state:resolved]
Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
This commit is contained in:
committed by
Pratik Naik
parent
51b986619d
commit
dce6ade4cd
@@ -62,7 +62,7 @@ module ActionView
|
||||
# # <option>3</option><option>4</option></select>
|
||||
#
|
||||
# select_tag "colors", "<option>Red</option><option>Green</option><option>Blue</option>", :multiple => true
|
||||
# # => <select id="colors" multiple="multiple" name="colors"><option>Red</option>
|
||||
# # => <select id="colors" multiple="multiple" name="colors[]"><option>Red</option>
|
||||
# # <option>Green</option><option>Blue</option></select>
|
||||
#
|
||||
# select_tag "locations", "<option>Home</option><option selected="selected">Work</option><option>Out</option>"
|
||||
@@ -70,14 +70,15 @@ module ActionView
|
||||
# # <option>Out</option></select>
|
||||
#
|
||||
# select_tag "access", "<option>Read</option><option>Write</option>", :multiple => true, :class => 'form_input'
|
||||
# # => <select class="form_input" id="access" multiple="multiple" name="access"><option>Read</option>
|
||||
# # => <select class="form_input" id="access" multiple="multiple" name="access[]"><option>Read</option>
|
||||
# # <option>Write</option></select>
|
||||
#
|
||||
# select_tag "destination", "<option>NYC</option><option>Paris</option><option>Rome</option>", :disabled => true
|
||||
# # => <select disabled="disabled" id="destination" name="destination"><option>NYC</option>
|
||||
# # <option>Paris</option><option>Rome</option></select>
|
||||
def select_tag(name, option_tags = nil, options = {})
|
||||
content_tag :select, option_tags, { "name" => name, "id" => name }.update(options.stringify_keys)
|
||||
html_name = (options[:multiple] == true && !name.to_s.ends_with?("[]")) ? "#{name}[]" : name
|
||||
content_tag :select, option_tags, { "name" => html_name, "id" => name }.update(options.stringify_keys)
|
||||
end
|
||||
|
||||
# Creates a standard text field; use these text fields to input smaller chunks of text like a username
|
||||
|
||||
@@ -211,7 +211,8 @@ class FormTagHelperTest < ActionView::TestCase
|
||||
def test_boolean_optios
|
||||
assert_dom_equal %(<input checked="checked" disabled="disabled" id="admin" name="admin" readonly="readonly" type="checkbox" value="1" />), check_box_tag("admin", 1, true, 'disabled' => true, :readonly => "yes")
|
||||
assert_dom_equal %(<input checked="checked" id="admin" name="admin" type="checkbox" value="1" />), check_box_tag("admin", 1, true, :disabled => false, :readonly => nil)
|
||||
assert_dom_equal %(<select id="people" multiple="multiple" name="people"><option>david</option></select>), select_tag("people", "<option>david</option>", :multiple => true)
|
||||
assert_dom_equal %(<select id="people" multiple="multiple" name="people[]"><option>david</option></select>), select_tag("people", "<option>david</option>", :multiple => true)
|
||||
assert_dom_equal %(<select id="people[]" multiple="multiple" name="people[]"><option>david</option></select>), select_tag("people[]", "<option>david</option>", :multiple => true)
|
||||
assert_dom_equal %(<select id="people" name="people"><option>david</option></select>), select_tag("people", "<option>david</option>", :multiple => nil)
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user