2010-09-11 35 views
1

我想知道是否有一種方法可以使用單選按鈕來設置文本框的字段值。軌道上的單選按鈕紅寶石

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

上面的代碼是不正確的,但在這方面的東西。

如果選擇了其他單選按鈕,我希望性別被設置爲text_field的值?不知道你如何做這種關聯?

Ex。

[單選按鈕]男

[單選按鈕]女

[單選按鈕]其他__________________

其中____________是文本框輸入。

最後如果用戶選擇男性,我希望存儲在數據庫中的值爲「男性」,女性爲「女性」或其他用戶輸入的值。

我有點想處理視圖中的所有邏輯。這是可能的還是必須在控制器中完成?

任何意見讚賞,

+2

什麼是你期待的 「其他」 的性別? – NullUserException 2010-09-11 03:45:33

+0

他/她? haa跨性別 – darewreck 2010-09-11 05:55:14

+0

@NullUserException,@ user391465:看到這裏:http://www.sarahmei.com/blog/2010/11/26/disalienation/ – Zabba 2010-12-27 00:37:47

回答

0

檢查此代碼。它可以幫助你

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

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()) 
    } 
});