2013-03-25 148 views
5

我知道這是一個重複的問題,但我無法使其運行。我嘗試了所有在SO中找到的解決方案並使用Google搜索...根據單選按鈕的選擇顯示/隱藏文本文件

我的頁面中有這個單選按鈕表單。我想要的是,當用戶選擇'只有一個與會者'選項時,文本字段僅出現在該選項中。如果用戶選擇消失的另一個。

Normal form

一旦用戶選擇只有一個選項,出現的文本框中。

expanded form

我一直在試圖用JavaScript這樣做。我使用這段代碼

<script> 
    $(document).ready(function() 
     $("#send_to_one").hide(); 
     $("input:radio[name="people"]").change(function(){ 
      if(this.checked){ 
      if(this.value =='one'){ 
       $("#send_to_one").show() 
      }else{ 
       $("#send_to_one").hide(); 
      } 
     } 
    } 
    }); 
</script> 

形式的代碼是

<div id="send_to"> 
    <input type="radio" id="send_poll" name="people" value="all" checked="checked">all the attendees</br>  
    <input type="radio" id="send_poll" name="people" value="one" >only one attendee<br/> 
    <div id="send_to_one"> 
     <label>Write the attendee's name: </label><input type="text" id="attendeename"><br/><br/> 
    </div> 
    <input type="radio" id="send_poll" name="people" value="group">a group of attendees</br>    
    </div>  

我已經簽了JavaScript文件被加載。我還嘗試將javascript代碼放在html.erb文件中的表單所在的位置,分隔的.js文件和application.htm.erb的<head></head>部分中,但沒有運氣。 我需要在哪裏準確地放置代碼的每個部分才能工作?

使用Rails 3.0.4,Ruby 1.8.9。我也在使用JQuery

+0

(OT)'''='
'和''!='' – 2013-03-25 08:46:08

+0

關閉我的頭頂:'$(「input:radio [name =」people「]」)。''應該是'$(「input:收音機[name ='people']「)。' – DVM 2013-03-25 08:46:22

回答

4

LIVE DEMO

HTML:

<div id="send_to"> 
    <input type="radio" id="send_poll" name="people" value="all" checked="checked" />all the attendees<br/>  
    <input type="radio" id="send_poll" name="people" value="one" />only one attendee<br/> 
    <div id="send_to_one"> 
     <label>Write the attendee's name: </label><input type="text" id="attendeename" /><br/><br/> 
    </div> 
    <input type="radio" id="send_poll" name="people" value="group" />a group of attendees<br/>    
</div> 

JQ:

$(document).ready(function(){ 

    $("#send_to_one").hide(); 

    $("input:radio[name='people']").change(function(){ 

      if(this.value == 'one' && this.checked){ 
       $("#send_to_one").show(); 
      }else{ 
       $("#send_to_one").hide(); 
      } 

    }); 

}); 
+1

您的回答有幫助,謝謝:) – itziki 2013-03-25 09:01:44

1
$(document).ready(function() { 
    $("#send_to_one").hide(); 
    $("input:radio[name='people']").change(function(){ 
     if(this.checked){ 
      if(this.value =='one'){ 
       $("#send_to_one").show() 
      }else{ 
       $("#send_to_one").hide(); 
      } 
     } 
    }); 
}); 

你的代碼是正確的,但有一些缺失大括號,括號和未轉義的引號。你使用任何形式的智能JavaScript編輯器?因爲你真的應該......

http://jsfiddle.net/7yt2A/