Имеет маркировка переключателя, делают выбор также?

Согласно (несколько официальному) это руководство, я могу заставить маркировку переключателя сделать выбор для того переключателя также. Они говорят,

Всегда используйте маркировки для каждого флажка и переключателя. Они связывают текст с определенной опцией и обеспечивают более крупный активируемый по щелчку регион.

К сожалению, я не смог получить эту функциональность для своей формы. Вот мой код:

<% form_for(@bet) do |f| %>
  <%= f.label :bet_type %>
  <%= f.radio_button :bet_type, "moneyline" %>
  <%= f.label :bet_type_moneyline, "Moneyline" %>
  <%= f.radio_button :bet_type, "spread" %>
  <%= f.label :bet_type_spread, "Spread" %>
<% end %>

Я также попробовал это (потому что это - способ примера использовать FormTagHelper вместо FormHelper):

<% form_for(@bet) do |f| %>
  <%= radio_button_tag :bet_type, "moneyline" %>
  <%= label_tag :bet_type_moneyline, "Moneyline" %>
  <%= radio_button_tag :bet_type, "spread" %>
  <%= label_tag :bet_type_spread, "Spread" %>
<% end %>

Но, я все еще не могу заставить это работать. Я использую направляющие 2.3.5 и рубиновые 1.8.7.

Спасибо за чтение и возможно помощь!

9
задан t-mart 9 January 2010 в 08:39
поделиться

3 ответа

Простой способ сделать это для переключателей - поместить тег ввода внутри метки, например:

<label>
  <input />
  This is an input!
</label>

Это действительный способ достижения вашей цели.

В Rails помощник label может принимать блок, так что вы можете сделать:

<%= f.label :moneyline do %>
  <%= f.radio_button :bet_type, "moneyline" %>
  "Moneyline"
<% end %>
6
ответ дан 4 December 2019 в 08:33
поделиться

Woops! Извините все. Я нашел ошибку немного неограниченному пути.

Я написал код этого поста вручную ... Нет копирования-пасты. Чтобы сохранить вещи, я переименовал некоторые из ценностей, которые я использовал, потому что код, который я бежал, был немного грязным (и, по-видимому, неверно).

Итак, когда Габи попросил меня получить какой-то вывод для этих кодовых кусков, я застрял их на мой взгляд и вуаля! Ярлыки, которые выбирают их соответствующие радиоукомины! Но почему?!

Ну вот вещь. Глядя на Ouput, я понял, что мой оригинальный код не генерировал постоянный вход и метку. Для значений в HTML. Это выглядело что-то подобное:

<%= f.radio_button :bet_type, "moneyline" %>
<%= f.label :moneyline, "Moneyline" %>

Это сгенерировало:

 <input id="bet_type_moneyline" name="bet_type type="radio" value="moneyline" />
 <label for="moneyline">Moneyline</label>

см. В

 <input id="bet_type_moneyline" name="bet_type type="radio" value="moneyline" />
 <label for="moneyline">Moneyline</label>

см. Насколько input.id и label.For разные?

и только когда я провел код в моем вопросе верно.

Кажется, что это работает: метод метки радиоустановки делает вход .ID из него (object_name + "_" + значение), и метод метки метки делает метку. Для этого Object_name. И когда эти два равны, вы получаете метку выбора.

Я надеюсь, что это открытие может помочь кому-то еще по линии.

Извините, чтобы ваши шестерни тоже ничего не шли!

0
ответ дан 4 December 2019 в 08:33
поделиться

Совершенно не зная рельсов, требования HTML просты: вы должны создавать свои теги следующим образом:

<input id="bet_type_moneyline" name="bet_type" type="radio" value="moneyline">
<label for="bet_type_moneyline">Moneyline</label>

Итак, прежде всего, проверьте свой HTML, в вашем примере у вас отсутствовали кавычки в ... name = "bet_type type =" radio "...

Во-вторых, for =" "всегда указывает на идентификатор поля.

Теперь у вас есть интерактивная метка для поля bet_type!

Надеюсь, это поможет!

3
ответ дан 4 December 2019 в 08:33
поделиться