Hi, I just noticed that button_to generates a div inside the form element. Why? Jeroen
On 17-nov-2005, at 14:48, Jeroen Houben wrote:> Hi, > > I just noticed that button_to generates a div inside the form > element. Why?Because it''s a requirement, per XHTML 1.1, to have an enclosing block element as an immediate child of the FORM element.
Julian ''Julik'' Tarkhanov wrote:> > On 17-nov-2005, at 14:48, Jeroen Houben wrote: > >> Hi, >> >> I just noticed that button_to generates a div inside the form >> element. Why? > > > Because it''s a requirement, per XHTML 1.1, to have an enclosing block > element as an immediate child of the FORM element.Wow. I wonder why they did that.. I guess div is a good choice then. It is a bit of a bummer that we can''t specify say a template for these things, I mean the div is hardcoded, you can only change it if you overwrite the button_to method altogether. Are there plans for something like this? Jeroen
hey guys, to fix this, i just hacked the button_to and url_for helpers 
and included it in my application.rb:
module ActionView
  module Helpers
    module UrlHelper
      def button_to(name, options = {}, html_options = nil)
        html_options = (html_options || {}).stringify_keys
        convert_boolean_attributes!(html_options, %w( disabled ))
        if confirm = html_options.delete("confirm")
          html_options["onclick"] = "return 
#{confirm_javascript_function(confirm)};"
        end
        options = {:only_path=>false}.update(options)
        url = options.is_a?(String) ? options : url_for(options)
        name ||= url
        html_options.symbolize_keys!
        tag(:input, html_options.merge({
          :type => "button", :value => name,
          :onclick => (html_options[:onclick] ? 
"#{html_options[:onclick]}; " : "") + 
"window.location.href=''#{url_for(options)}'';"
        }))
      end
      def url_for(options = {}, *parameters_for_method_reference)
        if options.kind_of? Hash
          options = { :only_path => true 
}.update(options.symbolize_keys)
          escape = options.key?(:escape) ? options.delete(:escape) : 
true
        else
          escape = true
        end
        url = @controller.send(:url_for, options, 
*parameters_for_method_reference)
        escape ? html_escape(url).gsub(/&/,"&") : url   #
replaces
the ''&'' with its original &
      end
    end
  end
end
-- 
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
 You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
You might be interested in this snippet of code I saw somewhere and use in
all my Rails apps.
ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|
  "<span class=\"error\">#{html_tag}</span>"
end
That fieldWithError div [a block element] around bad form fields can really
wreck a layout sometimes. An aptly named span works just as well.
RSL
On 12/21/06, Aryk Grosz
<rails-mailing-list-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org>
wrote:>
>
> hey guys, to fix this, i just hacked the button_to and url_for helpers
> and included it in my application.rb:
>
>
> module ActionView
>   module Helpers
>     module UrlHelper
>       def button_to(name, options = {}, html_options = nil)
>
>         html_options = (html_options || {}).stringify_keys
>         convert_boolean_attributes!(html_options, %w( disabled ))
>
>         if confirm = html_options.delete("confirm")
>           html_options["onclick"] = "return
> #{confirm_javascript_function(confirm)};"
>         end
>         options = {:only_path=>false}.update(options)
>         url = options.is_a?(String) ? options : url_for(options)
>         name ||= url
>
>         html_options.symbolize_keys!
>         tag(:input, html_options.merge({
>           :type => "button", :value => name,
>           :onclick => (html_options[:onclick] ?
> "#{html_options[:onclick]}; " : "") +
> "window.location.href=''#{url_for(options)}'';"
>         }))
>
>       end
>
>
>       def url_for(options = {}, *parameters_for_method_reference)
>         if options.kind_of? Hash
>           options = { :only_path => true
> }.update(options.symbolize_keys)
>           escape = options.key?(:escape) ? options.delete(:escape) :
> true
>         else
>           escape = true
>         end
>         url = @controller.send(:url_for, options,
> *parameters_for_method_reference)
>         escape ? html_escape(url).gsub(/&/,"&") : url
# replaces
> the ''&'' with its original &
>       end
>
>     end
>   end
> end
>
> --
> Posted via http://www.ruby-forum.com/.
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
 You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
Ugh... That code should read:
ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|
  "<span class=\"error\">#{html_tag}</span>"
end
RSL
On 12/22/06, Russell Norris
<sconds-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:>
> You might be interested in this snippet of code I saw somewhere and use in
> all my Rails apps.
>
> ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|
>   "<span class=\"error\">#{html_tag}<
/span>"
> end
>
> That fieldWithError div [a block element] around bad form fields can
> really wreck a layout sometimes. An aptly named span works just as well.
>
> RSL
>
>
> On 12/21/06, Aryk Grosz
<rails-mailing-list-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org > wrote:
> >
> >
> > hey guys, to fix this, i just hacked the button_to and url_for helpers
> > and included it in my application.rb:
> >
> >
> > module ActionView
> >   module Helpers
> >     module UrlHelper
> >       def button_to(name, options = {}, html_options = nil)
> >
> >         html_options = (html_options || {}).stringify_keys
> >         convert_boolean_attributes!(html_options, %w( disabled ))
> >
> >         if confirm = html_options.delete("confirm")
> >           html_options["onclick"] = "return
> > #{confirm_javascript_function(confirm)};"
> >         end
> >         options = {:only_path=>false}.update(options)
> >         url = options.is_a?(String) ? options : url_for(options)
> >         name ||= url
> >
> >         html_options.symbolize_keys!
> >         tag(:input, html_options.merge({
> >           :type => "button", :value => name,
> >           :onclick => (html_options[:onclick] ?
> > "#{html_options[:onclick]}; " : "") +
> > "window.location.href=''#{url_for
(options)}'';"
> >         }))
> >
> >       end
> >
> >
> >       def url_for(options = {}, *parameters_for_method_reference)
> >         if options.kind_of? Hash
> >           options = { :only_path => true
> > }.update( options.symbolize_keys)
> >           escape = options.key?(:escape) ? options.delete(:escape) :
> > true
> >         else
> >           escape = true
> >         end
> >         url = @controller.send(:url_for, options,
> > *parameters_for_method_reference)
> >         escape ? html_escape(url).gsub(/&/,"&")
: url   # replaces
> > the ''&'' with its original &
> >       end
> >
> >     end
> >   end
> > end
> >
> > --
> > Posted via http://www.ruby-forum.com/.
> >
> > > >
> >
>
--~--~---------~--~----~------------~-------~--~----~
 You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
Excellent. I just had that wreck a layout yesterday. Including this code should be easier and cleaner than hacking up the CSS. Russell Norris wrote:> Ugh... That code should read: > > ActionView::Base.field_error_proc = Proc.new do |html_tag, instance| > "<span class=\"error\">#{html_tag}</span>" > end > > RSL > > On 12/22/06, *Russell Norris* <sconds-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org > <mailto:sconds-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>> wrote: > > You might be interested in this snippet of code I saw somewhere > and use in all my Rails apps. > > ActionView::Base.field_error_proc = Proc.new do |html_tag, instance| > "<span class=\"error\">#{html_tag}< > /span>" > end > > That fieldWithError div [a block element] around bad form fields > can really wreck a layout sometimes. An aptly named span works > just as well. > > RSL > > > On 12/21/06, *Aryk Grosz* < rails-mailing-list-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org > <mailto:rails-mailing-list-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> > wrote: > > > hey guys, to fix this, i just hacked the button_to and url_for > helpers > and included it in my application.rb: > > > module ActionView > module Helpers > module UrlHelper > def button_to(name, options = {}, html_options = nil) > > html_options = (html_options || {}).stringify_keys > convert_boolean_attributes!(html_options, %w( disabled )) > > if confirm = html_options.delete("confirm") > html_options["onclick"] = "return > #{confirm_javascript_function(confirm)};" > end > options = {:only_path=>false}.update(options) > url = options.is_a?(String) ? options : url_for(options) > name ||= url > > html_options.symbolize_keys! > tag(:input, html_options.merge({ > :type => "button", :value => name, > :onclick => (html_options[:onclick] ? > "#{html_options[:onclick]}; " : "") + > "window.location.href=''#{url_for (options)}'';" > })) > > end > > > def url_for(options = {}, *parameters_for_method_reference) > if options.kind_of? Hash > options = { :only_path => true > }.update( options.symbolize_keys) > escape = options.key?(:escape) ? > options.delete(:escape) : > true > else > escape = true > end > url = @controller.send(:url_for, options, > *parameters_for_method_reference) > escape ? html_escape(url).gsub(/&/,"&") : url # > replaces > the ''&'' with its original & > end > > end > end > end > > -- > Posted via http://www.ruby-forum.com/. > > > > > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---