提交 ac8d3e3a 编写于 作者: J Jeff Dean 提交者: Michael Koziarski

make text_field and hidden_field omit the value attribute if the developer...

make text_field and hidden_field omit the value attribute if the developer explicitly passes in :value => nil [#4839 state:resolved]
Signed-off-by: NMichael Koziarski <michael@koziarski.com>
上级 e639536e
......@@ -898,7 +898,7 @@ def to_input_field_tag(field_type, options = {})
options.delete("size")
end
options["type"] ||= field_type
options["value"] ||= value_before_type_cast(object) unless field_type == "file"
options["value"] = options.fetch("value"){ value_before_type_cast(object) } unless field_type == "file"
options["value"] &&= html_escape(options["value"])
add_default_name_and_id(options)
tag("input", options)
......@@ -1043,14 +1043,14 @@ def add_default_name_and_id_for_value(tag_value, options)
def add_default_name_and_id(options)
if options.has_key?("index")
options["name"] ||= tag_name_with_index(options["index"])
options["id"] = options.fetch("id", tag_id_with_index(options["index"]))
options["id"] = options.fetch("id"){ tag_id_with_index(options["index"]) }
options.delete("index")
elsif defined?(@auto_index)
options["name"] ||= tag_name_with_index(@auto_index)
options["id"] = options.fetch("id", tag_id_with_index(@auto_index))
options["id"] = options.fetch("id"){ tag_id_with_index(@auto_index) }
else
options["name"] ||= tag_name + (options.has_key?('multiple') ? '[]' : '')
options["id"] = options.fetch("id", tag_id)
options["id"] = options.fetch("id"){ tag_id }
end
end
......
......@@ -188,6 +188,11 @@ def test_text_field_removing_size
assert_dom_equal expected, text_field("post", "title", :maxlength => 35, :size => nil)
end
def test_text_field_with_nil_value
expected = '<input id="post_title" name="post[title]" size="30" type="text" />'
assert_dom_equal expected, text_field("post", "title", :value => nil)
end
def test_text_field_doesnt_change_param_values
object_name = 'post[]'
expected = '<input id="post_123_title" name="post[123][title]" size="30" type="text" value="Hello World" />'
......@@ -208,6 +213,11 @@ def test_hidden_field_with_escapes
hidden_field("post", "title")
end
def test_hidden_field_with_nil_value
expected = '<input id="post_title" name="post[title]" type="hidden" />'
assert_dom_equal expected, hidden_field("post", "title", :value => nil)
end
def test_text_field_with_options
assert_dom_equal '<input id="post_title" name="post[title]" type="hidden" value="Something Else" />',
hidden_field("post", "title", :value => "Something Else")
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册