1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Switched to use display:none in extra_tags_for_form method.

The use of `display:inline` with the content_tag call in the
extra_tags_for_form method potentially causes display issues with some
browsers, namely Internet Explorer. IE's behaviour of not collapsing
the line height on divs with ostensibly no content means that the
automatically added div containing the hidden authenticity_token, utf8
and _method form input tags may interfere with other visible form
elements in certain circumstances. The use of `display:none` rather
than `display:inline` fixes this problem.

Fixes #6403
This commit is contained in:
Gaelian Ditchburn 2012-06-03 19:07:54 +10:00 committed by Andrew White
parent 6b54883082
commit 7a085dac2a
6 changed files with 14 additions and 8 deletions

View file

@ -1,3 +1,9 @@
* Use `display:none` instead of `display:inline` for hidden fields
Fixes #6403
*Gaelian Ditchburn*
* The `video_tag` helper accepts a number as `:size` * The `video_tag` helper accepts a number as `:size`
The `:size` option of the `video_tag` helper now can be specified The `:size` option of the `video_tag` helper now can be specified

View file

@ -51,7 +51,7 @@ module ActionView
# The HTML generated for this would be (modulus formatting): # The HTML generated for this would be (modulus formatting):
# #
# <form action="/people" class="new_person" id="new_person" method="post"> # <form action="/people" class="new_person" id="new_person" method="post">
# <div style="margin:0;padding:0;display:inline"> # <div style="display:none">
# <input name="authenticity_token" type="hidden" value="NrOp5bsjoLRuK8IW5+dQEYjKGUJDe7TQoZVvq95Wteg=" /> # <input name="authenticity_token" type="hidden" value="NrOp5bsjoLRuK8IW5+dQEYjKGUJDe7TQoZVvq95Wteg=" />
# </div> # </div>
# <label for="person_first_name">First name</label>: # <label for="person_first_name">First name</label>:
@ -81,7 +81,7 @@ module ActionView
# the code above as is would yield instead: # the code above as is would yield instead:
# #
# <form action="/people/256" class="edit_person" id="edit_person_256" method="post"> # <form action="/people/256" class="edit_person" id="edit_person_256" method="post">
# <div style="margin:0;padding:0;display:inline"> # <div style="display:none">
# <input name="_method" type="hidden" value="patch" /> # <input name="_method" type="hidden" value="patch" />
# <input name="authenticity_token" type="hidden" value="NrOp5bsjoLRuK8IW5+dQEYjKGUJDe7TQoZVvq95Wteg=" /> # <input name="authenticity_token" type="hidden" value="NrOp5bsjoLRuK8IW5+dQEYjKGUJDe7TQoZVvq95Wteg=" />
# </div> # </div>
@ -315,7 +315,7 @@ module ActionView
# The HTML generated for this would be: # The HTML generated for this would be:
# #
# <form action='http://www.example.com' method='post' data-remote='true'> # <form action='http://www.example.com' method='post' data-remote='true'>
# <div style='margin:0;padding:0;display:inline'> # <div style='display:none'>
# <input name='_method' type='hidden' value='patch' /> # <input name='_method' type='hidden' value='patch' />
# </div> # </div>
# ... # ...
@ -333,7 +333,7 @@ module ActionView
# The HTML generated for this would be: # The HTML generated for this would be:
# #
# <form action='http://www.example.com' method='post' data-behavior='autosave' name='go'> # <form action='http://www.example.com' method='post' data-behavior='autosave' name='go'>
# <div style='margin:0;padding:0;display:inline'> # <div style='display:none'>
# <input name='_method' type='hidden' value='patch' /> # <input name='_method' type='hidden' value='patch' />
# </div> # </div>
# ... # ...

View file

@ -722,7 +722,7 @@ module ActionView
enforce_utf8 = html_options.delete("enforce_utf8") { true } enforce_utf8 = html_options.delete("enforce_utf8") { true }
tags = (enforce_utf8 ? utf8_enforcer_tag : ''.html_safe) << method_tag tags = (enforce_utf8 ? utf8_enforcer_tag : ''.html_safe) << method_tag
content_tag(:div, tags, :style => 'margin:0;padding:0;display:inline') content_tag(:div, tags, :style => 'display:none')
end end
def form_tag_html(html_options) def form_tag_html(html_options)

View file

@ -59,7 +59,7 @@ class FormHelperActiveRecordTest < ActionView::TestCase
protected protected
def hidden_fields(method = nil) def hidden_fields(method = nil)
txt = %{<div style="margin:0;padding:0;display:inline">} txt = %{<div style="display:none">}
txt << %{<input name="utf8" type="hidden" value="&#x2713;" />} txt << %{<input name="utf8" type="hidden" value="&#x2713;" />}
if method && !%w(get post).include?(method.to_s) if method && !%w(get post).include?(method.to_s)
txt << %{<input name="_method" type="hidden" value="#{method}" />} txt << %{<input name="_method" type="hidden" value="#{method}" />}

View file

@ -3023,7 +3023,7 @@ class FormHelperTest < ActionView::TestCase
protected protected
def hidden_fields(method = nil) def hidden_fields(method = nil)
txt = %{<div style="margin:0;padding:0;display:inline">} txt = %{<div style="display:none">}
txt << %{<input name="utf8" type="hidden" value="&#x2713;" />} txt << %{<input name="utf8" type="hidden" value="&#x2713;" />}
if method && !%w(get post).include?(method.to_s) if method && !%w(get post).include?(method.to_s)
txt << %{<input name="_method" type="hidden" value="#{method}" />} txt << %{<input name="_method" type="hidden" value="#{method}" />}

View file

@ -14,7 +14,7 @@ class FormTagHelperTest < ActionView::TestCase
method = options[:method] method = options[:method]
enforce_utf8 = options.fetch(:enforce_utf8, true) enforce_utf8 = options.fetch(:enforce_utf8, true)
txt = %{<div style="margin:0;padding:0;display:inline">} txt = %{<div style="display:none">}
txt << %{<input name="utf8" type="hidden" value="&#x2713;" />} if enforce_utf8 txt << %{<input name="utf8" type="hidden" value="&#x2713;" />} if enforce_utf8
if method && !%w(get post).include?(method.to_s) if method && !%w(get post).include?(method.to_s)
txt << %{<input name="_method" type="hidden" value="#{method}" />} txt << %{<input name="_method" type="hidden" value="#{method}" />}