在Ruby on Rails中在一个页面上多次重用partials

时间:2008-10-22 14:30:04

标签: ruby-on-rails ruby

我有一个部分使用以下方法呈现选择框:

<%= collection_select 'type', 'id', @types, "id", "name", 
  {:prompt => true}, 
  {:onchange => 
              remote_function(
              :loading => "Form.Element.disable('go_button')",
              :url => '/sfc/criteria/services', 
              :with => "'type_id=' + encodeURIComponent(value) + '&use_wizard=#{use_wizard}'"),
    :class => "hosp_select_buttons"
} %>

此部分在每个页面上使用了2次,但在某一点上我需要获取第一个选择框的值。使用:

$('type_id')

返回第二个选择框。有没有办法轻松找到第一个?我应该使用javascript或通过重做我的部分来解决这个问题吗?

注意:下拉列表会以不同的形式呈现。

2 个答案:

答案 0 :(得分:1)

我想通过在html_options块中分配ID来找到一种方法。我已经传递了use_wizard的值,所以我可以将该值附加到ID以区分两个下拉列表。

:id => "type_id_wizard_#{use_wizard}"

答案 1 :(得分:1)

是的,每个元素确实需要一个唯一的ID,页面可能也会失败HTML验证。此外,除非它们有两种不同的形式,否则您将与CGI参数名称发生冲突。

如果它们有两种不同的形式,你可以通过设置你发布的id来实现,如果它们是你需要抽象参数名称的相同形式:

collection_select'type',“id_wizard _#{use_wizard}”......