11
votes

Avoir l'étiquette du bouton radio à faire une sélection aussi?

Selon (un peu officiel) Ce guide , je peux faire une radio L'étiquette du bouton est également la sélection de ce bouton radio. Ils disent,

Utilisez toujours des étiquettes pour chaque case à cocher et bouton radio. Ils texte associé avec une option spécifique forte> et fournissent une région cliquable plus grande forte>. P> BlockQuote>

Malheureusement, je n'ai pas pu obtenir cette fonctionnalité pour mon formulaire. Voici mon code: P>

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


1 commentaires

Pouvez-vous nous dire ce que le code ci-dessus sortira?


6 Réponses :


1
votes

Woops! Désolé tout. J'ai trouvé l'erreur d'un peu malade.

J'ai écrit le code de ce message à la main ... pas de pâte de copie. Pour garder les choses claires, j'ai renommé certaines valeurs que j'ai utilisées parce que le code que je courais était un peu désordonné (et apparemment incorrect).

Donc, quand Gaby m'a demandé d'obtenir des sorties pour ces morceaux de code, Je les ai coincés à mon avis et à voile! Étiquettes qui sélectionnent leurs boutons radio respectifs! Mais pourquoi ?!

Eh bien, voici la chose. En regardant la sortie de la sortie, j'ai réalisé que mon code d'origine n'avait pas généré d'entrée constante.Id et d'étiquette.Pour valeurs dans le HTML. Il semblait quelque chose comme ceci: xxx

ceci généré: xxx

Voir comment entrée.Id et étiquette.for sont différents. ?

et seulement lorsque j'ai dirigé le code dans ma question ai-je obtenu ce droit.

Il semble fonctionner comme ceci: la méthode de la balise de bouton radio fait de l'entrée.Id à partir de ce que c'est (objet_name + "_" + valeur) et la méthode de la balise d'étiquette fait l'étiquette.Pour à partir de son nom d'objet. Et quand ces deux égaux, vous obtenez une étiquette de sélection.

J'espère que cette découverte peut aider quelqu'un d'autre à sortir le long de la ligne.

Désolé d'obtenir vos engins de meulage pour rien! < / p>


0 commentaires

5
votes

Un moyen facile de faire cela pour les boutons radio consiste à placer la balise d'entrée à l'intérieur de l'étiquette, comme: xxx

Il s'agit d'un moyen valide d'accomplir votre objectif.

in rails L'étiquette peut accepter un bloc, de sorte que vous puissiez faire: xxx


0 commentaires

4
votes

Ne pas connaître les rails du tout, les exigences HTML sont faciles: vous devez construire vos balises comme ceci: XXX

Donc, Tout d'abord, vérifiez votre HTML, dans votre exemple que vous avez eu Citations manquantes en ... NAME = "BET_TYPE TYPE =" radio "...

Deuxièmement, le pour =" "Points toujours à l'ID du champ.

Maintenant vous obtenu une étiquette cliquable pour le champ bet_type!

espère qu'il aide!


0 commentaires

5
votes
<%= f.radio_button :bet_type, "moneyline" %>
<%= f.label :moneyline, "Moneyline", :for => "bet_type_moneyline" %>

1 commentaires

Impressionnant - Travaux réellement (Rails 4), contrairement aux votés les plus élevés où le clic sur l'étiquette n'a rien fait.



10
votes

Vous pouvez trouver une solution mais cela peut aider les autres. J'utilise des rails 4 +.

Vous pouvez rendre l'étiquette cliquable correctement en utilisant Méthode d'étiquette de formhelper de Rails à l'aide de la touche "Valeur" dans les paramètres " xxx

pour votre code, cela devrait être quelque chose comme xxx

espère qu'il aide :)


0 commentaires

1
votes

J'utilise des rails 5 et des attributs imbriqués, il n'était donc pas possible de convertir le code DOM du champ de saisie (bouton radio). La solution consiste à utiliser la valeur: Attribut de form.label xxx

Rails génère automatiquement le pour: attribut pour l'étiquette. Il suffit d'inspecter l'étiquette et de vous assurer que l'attribut de votre étiquette correspond à l'ID du bouton radio.


0 commentaires