如何获取 Ruby on Rails 生成的表单元素的 id 以便在 JavaScript 中引用?

新手上路,请多包涵

当使用 form_for 助手和 text_field 调用时,Ruby on Rails 将为 <input /> 输出的元素生成一个唯一的 id–我如何生成相同的 id 以便稍后包含到稍后生成的 JavaScript 中?

 <%= form_for @user do |f| %>
  <%= f.text_field :username %>
<% end %>

然后在页面后面:

 <%= javascript_tag do %>
  $('<%= id of the :username field %>').doSomethingReallyCool();
<% end %>

原文由 Paul Alexander 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 413
2 个回答

我最终创建了一个自定义表单生成器来直接公开该属性

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

然后设置默认的表单生成器

ActionView::Base.default_form_builder = FormBuilder

原文由 Paul Alexander 发布,翻译遵循 CC BY-SA 2.5 许可协议

查看表单构建器选项:

 <%= form_for @user do |f| %>
  <% form_css_id = "#" + f.options[:html][:id] %>
<% end %>

选项至少应包含以下数据:css 类、id、http 方法和真实性令牌。

原文由 Matt Aimonetti 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题