Многократное использование партиалов на одной странице в Ruby on Rails - PullRequest
2 голосов
/ 22 октября 2008

У меня есть партиал, который отображает поле выбора, используя следующий метод:

<%= 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 ]

1 голос
/ 22 октября 2008

Да, каждому элементу нужен уникальный идентификатор, возможно, страница также не проходит проверку HTML. Кроме того, если они не представлены в двух разных формах, у вас будет конфликт с именем параметра CGI.

Если они находятся в 2 разных формах, вы, вероятно, можете обойтись, просто установив: id, как вы опубликовали, если они одинаковой формы, вам также необходимо абстрагировать имя параметра:

collection_select 'type', "id_wizard _ # {use_wizard}" ...

1 голос
/ 22 октября 2008

Я нашел один способ сделать это, назначив идентификатор в блоке html_options. Я уже передаю значение для use_wizard, поэтому могу добавить это значение к идентификатору, чтобы различать два раскрывающихся списка.

:id => "type_id_wizard_#{use_wizard}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...