When using the form_for
helper and a text_field
call, Ruby on Rails will generate a unique id for the <input />
element that it outputs. How can I generate the same id for later inclusion into JavaScript generated later?
<%= form_for @user do |f| %> <%= f.text_field :username %> <% end %>
Then later in the page:
<%= javascript_tag do %> $('<%= id of the :username field %>').doSomethingReallyCool(); <% end %>
I ended up creating a custom form builder to expose the property directly
class FormBuilder < ActionView::Helpers::FormBuilder def id_for(method, options={}) InstanceTag.new( object_name, method, self, object ) \ .id_for( options ) end end class InstanceTag < ActionView::Helpers::InstanceTag def id_for( options ) add_default_name_and_id(options) options['id'] end end
Then set the default form builder
ActionView::Base.default_form_builder = FormBuilder
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With