2013-07-26 56 views
0

我幾乎總是jquery noob我很害怕!我相信這是一件非常簡單的事情,但我似乎無法解決這個問題。使用jQuery獲取動態單選按鈕的值

我試圖獲得一個動態的,選定的單選按鈕的值。

HTML ...

<div id="holder" class=""> 
<table id="qual-holder" class="table table-striped qual-table"> 
    <thead> 
     <tr> 
      <th>Sector</th> 
      <th>Qualification Title</th> 
      <th>Cost</th> 
      <th>Confirm</th> 
     </tr> 
    </thead> 
    <tr class="sector_qual"> 
     <td>OM207</td> 
     <td>Diploma in Children and Young People's Workforce Level 3</td> 
     <td>0</td> 
     <td> 
      <input name="qualification" id="28" type="radio" value="28" class=""> 
     </td> 
    </tr> 
    <tr class="sector_qual"> 
     <td>OM207</td> 
     <td>Diploma in Children and Young People's Workforce</td> 
     <td>0</td> 
     <td> 
      <input name="qualification" id="29" type="radio" value="29" class=""> 
     </td> 
    </tr> 
    <tbody id="sector_quals"></tbody> 
</table> 
<div class="control-group spacing-top"> 
    <label for="loan_value" class="control-label required">Amount to Borrow</label> 
    <div class="controls"> 
     <div class="input-prepend"> <span class="add-on"><i class="icon-gbp"></i></span> 

      <input class="input-small" placeholder="" name="loan_value" type="text" value="" id="loan_value"> 
     </div> 
    </div> 
</div> 

我的(垃圾)的jQuery ...

function updateAmount() { 
    var selectedValue = ""; 
    var selected = $("input:radio[name='qualification']:checked"); 
    if (selected.length > 0) { 
     selectedValue = selected.val(); 
     alert('The radio button has been selected and the value is.' + selectedValue); 
    } 

} 

updateAmount(); 

有人能告訴我什麼,我做錯了什麼?

感謝

+0

您將updateAmount()放在文檔中準備好了嗎? – JonathanRomer

+0

你會想要警報來嗎?當你點擊收音機 –

回答

5

要調用updateAmount太早,綁定click事件,並有回調的updateAmount,或change事件作爲烤提到,因爲只有當實際選擇了,而不是改變了事件將被觸發只是被點擊。

jQuery(document).on("click",'input:radio[name=qualification]',updateAmount); 

.on功能使得它如此當前單選按鈕和任何新的單選按鈕的點擊事件被炒魷魚

jQuery .on reference

jQuery click reference

jQuery change reference

+0

時,我會改用改變事件+1 –

+1

你怎麼知道他說得太早? – JonathanRomer

+0

@JonathanRomer當他宣佈功能 –

2

你的代碼實際上是罰款。問題在於你撥打updateAmount()。如果您希望在用戶選擇某個選項時調用此選項,請在change()事件中調用該選項。像這樣:

$("input:radio[name='qualification']").change(function() { 
    updateAmount(); 
}); 

Here is a working example

0

試試這個:

給一個班的所有radio buttons。例如無線電。

$(".radio").change(function(){ 
    var selected_value = $(this).val(); 
    alert('The radio button has been selected and the value is ' + selected_value); 

});