#ruby-on-rails #html-select
#ruby-on-rails #html-выберите
Вопрос:
У меня есть select_tag, который отображает количество и цену вместе:
<% quant_price(quantity) = logic for quantity price breaks %>
<% @quantities = Array.new(1000) {|i| ((i 1) * 10) } %>
<%= select_tag(:quantity, options_for_select(@quantities.map {|q| ["#{q} ($#{quant_price(q)}/ea)", q] }, @line_item.present? ? @line_item.quantity : 10), :class => "quantity-picker", :style => "float: right; width: 90px;") %>
Это делает параметры выбора, которые появляются, когда пользователь нажимает на средство выбора количества, похожими:
10 ($5.00/ea)
20 ($4.80/ea)
30 ($4.60/ea)
etc...
Но когда они выбирают опцию, в поле выбора отображается «10 ($ 5.00 / ea)». Я хочу, чтобы он просто считывал q
значение в представлении выбора, а не дополнительные данные.
Как я могу сделать так, чтобы в окне выбора / выбора количества просто читалось «10»?
Комментарии:
1. Какова ваша фактическая цель здесь? При передаче пар
options_for_select
первое используется как текст, а второе — как значение. Параметры в браузере автоматически не меняют свой текст на свое значение при их выборе. Если вы хотите такого поведения, вам нужно использовать javascript.2. Цель состоит в том, чтобы в представлении «выбрать» отображалось только значение параметра после выбора пользователем; не первая текстовая строка. Я пытался использовать JS для изменения innerHTML, но это не сработало.
3. @Alex Вы ожидаете показать выбранное значение вместо того, чтобы всегда показывать первый вариант как выбранный?
4. @SampatBadhe Да… Я хочу показать значение, выбранное в представлении выбора, после того, как пользователь нажмет на эту опцию
5. @Alex как насчет отображения
quant_price
какtitle(tooltip on hover)
для выбранного элемента?<%= select_tag(:quantity, options_for_select(@quantities.map {|q| [q, q, {:title => "#{q} ($#{quant_price(q)}/ea)" }] }, @line_item.present? ? @line_item.quantity : 10), :class => "quantity-picker", :style => "float: right; width: 90px;") %>