我有一个部分使用以下方法呈现选择框:
<%= 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或通过重做我的部分来解决这个问题吗?
注意:下拉列表会以不同的形式呈现。
答案 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}”......