2010-09-11 10 views
1

Je me demandais s'il y avait un moyen d'utiliser le bouton radio pour définir la valeur d'un champ qui est une zone de texte.bouton radio ruby ​​sur rail

<%= radio_button("demographics_questionaires", "gender", "Male")%> Male <br\> 
    <%= radio_button("demographics_questionaires", "gender", "Female")%> Female <<br\> 
    <%= radio_button("demographics_questionaires", "gender", "Other")%> 
    Other <%= f.text_field gender %> 

Au-dessus de code est incorrect, mais quelque chose que les lignes.

Si l'autre bouton radio est sélectionné, je veux que le paramètre gender soit défini sur text_field? Vous ne savez pas comment vous faites cette association?

Ex.

[bouton radio] Homme

[bouton radio] Femme

[bouton radio] Autre __________________

où ____________ est la zone de texte pour entrer. À la fin Si l'utilisateur choisit le mâle, je veux que la valeur est stockée dans la base de données pour être "Mâle", pour femelle "FEMELLE", ou pour autre ce que l'utilisateur entre. Je voulais en quelque sorte gérer toute la logique de la vue. Est-ce possible ou doit-il être fait dans le contrôleur?

Tout conseil apprécié,

+2

Qu'attendez-vous pour le genre "Autre"? – NullUserException

+0

he/she? haa transgenre – darewreck

+0

@NullUserException, @ user391465: Voir ici: http://www.sarahmei.com/blog/2010/11/26/disalienation/ – Zabba

Répondre

0

Vérifiez ce code. Il peut vous aider à

<%= form_for @user do |f| %> 
    <%= f.radio_button :email, 'male' %> male<br /> 
    <%= f.radio_button :email, 'female' %> Female<br /> 
    <%= f.radio_button :email, 'others' %> others<br /> 
    <%= f.hidden_field :email %> 
<% end %> 

script jquery

<script type="text/javascript"> 

$("input[type='radio']").change(function(){ 
    if ($('input[type="radio"]:checked').val() == "others") 
    { 
     $('input[type="hidden"]').val('') 
     $('input[type="hidden"]').prop("type", "text"); 
    } 
    else if ($('input[type="radio"]:checked').val() != "others") 
    { 
     $('input[type="hidden"]').prop("type", "hidden"); 
     $('input[type="hidden"]').val($('input[type="radio"]:checked').val()) 
    } 
});