Hi all. If In my view I have: <%= text_field_tag(''name'','''',:onfocus => "for (var i=1;i<99999;i++){};" %> I''d expect to have this html: <input name="name" onfocus="for (var i=1;i<99999;i++){};" /> instead I have: <input name="name" onfocus="for (var i=1;i<99999;i++){};" /> And obviously the javascript code does not work... I also tried this: <%= text_field_tag(''name'','''',:onfocus => "for (var i=1;i<99999;i++){};".html_safe %> but the output is the same Thanks to all. -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit https://groups.google.com/groups/opt_out.
Hi Only one solution you should use method ''tag'' directly https://github.com/rails/rails/blob/39b9c943b7ec5181c19461d319d8c610ea1bf941/actionpack/lib/action_view/helpers/tag_helper.rb#L65 Because escape = true by default for ''text_field_tag'' https://github.com/rails/rails/blob/c091fae21f32250b19475f124c3b680dbbc163d9/actionpack/lib/action_view/helpers/form_tag_helper.rb#L170 P.S: Do not use inline JS . On Wednesday, November 14, 2012 7:27:18 PM UTC+2, Ruby-Forum.com User wrote:> > Hi all. > > If In my view I have: > > <%= text_field_tag(''name'','''',:onfocus => "for (var i=1;i<99999;i++){};" > %> > > I''d expect to have this html: > > <input name="name" onfocus="for (var i=1;i<99999;i++){};" /> > > instead I have: > > <input name="name" onfocus="for (var i=1;i<99999;i++){};" /> > > And obviously the javascript code does not work... > > I also tried this: > <%= text_field_tag(''name'','''',:onfocus => "for (var > i=1;i<99999;i++){};".html_safe %> > > but the output is the same > > Thanks to all. > > -- > 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/P4jqHCbCiEIJ. For more options, visit https://groups.google.com/groups/opt_out.
Max Shytikov wrote in post #1084457:> Only one solution you should use method ''tag'' directly >https://github.com/rails/rails/blob/39b9c943b7ec5181c19461d319d8c610ea1bf941/actionpack/lib/action_view/helpers/tag_helper.rb#L65 Thank you, This works! But finally I ended making a getElementById("name").onfocus = ... on load instead of changing all my text_field_tag with tag> P.S: Do not use inline JS .You''re right, but my problem is that I have ruby code in rhtml that generates css and javascript codes. These codes are not static but depend on ruby variables values. I can''t figure out how to pass a ruby variable into an external css or js file... So I have to keep all the code in one big (sigh!) rhtml... -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit https://groups.google.com/groups/opt_out.
Sam Pei wrote in post #1084545:> Max Shytikov wrote in post #1084457: > I can''t figure out how to pass a ruby variable into an external css or > js file... > > So I have to keep all the code in one big (sigh!) rhtml...The simplest way is to not pass the data to JavaScript, but rather get the value from the DOM using JavaScript/jQuery. This is accomplished by using HTML5 data attributes. Say you have a Ruby variable x: HTML ------------ <div id="my_div" data-x="my_ruby_value">My content</div> JavaScript ------------ function myFunction() { var x = $(''#my_div'').data("x"); // Do something with x } Ryan Bates did a Railscasts episode on a few techniques to keep your JavaScript unobtrusive and yet still have access to your Ruby data: http://railscasts.com/episodes/324-passing-data-to-javascript -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit https://groups.google.com/groups/opt_out.
Robert Walker wrote in post #1084592:> Sam Pei wrote in post #1084545: >> Max Shytikov wrote in post #1084457: >> I can''t figure out how to pass a ruby variable into an external css or >> js file... >> >> So I have to keep all the code in one big (sigh!) rhtml... > > The simplest way is to not pass the data to JavaScript, but rather get > the value from the DOM using JavaScript/jQuery. This is accomplished by > using HTML5 data attributes. > > Say you have a Ruby variable x: > > HTML > ------------ > <div id="my_div" data-x="my_ruby_value">My content</div> > > JavaScript > ------------ > function myFunction() { > var x = $(''#my_div'').data("x"); > // Do something with x > } > > Ryan Bates did a Railscasts episode on a few techniques to keep your > JavaScript unobtrusive and yet still have access to your Ruby data: > > http://railscasts.com/episodes/324-passing-data-to-javascriptThank you, I am doing so. But $(''#my_div'').data("x") is not working form me, I had to do this: HTML: <div id="my_div" data-x=''<%= my_ruby_var %>''> JS: var div=document.getElementById(''my_div''); var x = div.getAttribute("data-x"); Btw, I think I could remove all Javascript code by rhtml by using this. But what about css? Could something like that be done with css? I have inline css with the :style attribute where I put my ruby variable: (...) :style => "width:" + my_ruby_var + "px" (...) If i want to do a separate css file, how can I access to this ruby variable from inside the .css ? Thank You -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit https://groups.google.com/groups/opt_out.