2013-08-04 53 views
103

這裏是我的代碼:在jQuery中,如何獲得單選按鈕的值時,他們都具有相同的名稱?

<table> 
    <tr> 
     <td>Sales Promotion</td> 
     <td><input type="radio" name="q12_3" value="1">1</td> 
     <td><input type="radio" name="q12_3" value="2">2</td> 
     <td><input type="radio" name="q12_3" value="3">3</td> 
     <td><input type="radio" name="q12_3" value="4">4</td> 
     <td><input type="radio" name="q12_3" value="5">5</td> 
    </tr> 
</table> 
<button id="submit">submit</button> 

這裏是JS:

$(function(){ 
    $("#submit").click(function(){  
     alert($('input[name=q12_3]').val()); 
    }); 
}); 

這裏是JSFIDDLE!每次我點擊按鈕,它都會返回1.爲什麼?誰能幫我?

在您選擇

回答

218

在你的代碼,jQuery的只是尋找名稱爲q12_3的輸入的第一個實例,在這種情況下其值爲1。你想要一個名字爲q12_3的輸入是:checked

$("#submit").click(function() { 
 
    var val = $('input[name=q12_3]:checked').val(); 
 
    alert(val); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<table> 
 
    <tr> 
 
    <td>Sales Promotion</td> 
 
    <td><input type="radio" name="q12_3" value="1">1</td> 
 
    <td><input type="radio" name="q12_3" value="2">2</td> 
 
    <td><input type="radio" name="q12_3" value="3">3</td> 
 
    <td><input type="radio" name="q12_3" value="4">4</td> 
 
    <td><input type="radio" name="q12_3" value="5">5</td> 
 
    </tr> 
 
</table> 
 
<button id="submit">submit</button>

注意的是,上述代碼是一樣使用.is(":checked")。 jQuery的is()函數返回一個布爾值(true或false)而不是(an)元素。

15

,你也應該指定要檢查的單選按鈕:

$(function(){ 
    $("#submit").click(function(){  
     alert($('input[name=q12_3]:checked').val()); 
    }); 
}); 
+0

我得到 '未定義' 值 –

+0

@PavanAlapati我們真的不能告訴你爲什麼沒有看到你的HTML爲好;理想情況下,你會發佈一個新的問題與你的確切的HTML代碼段和你正在使用的代碼。如果出現以下情況,您應該只會得到未定義的內容:選擇器中的名稱與單選按鈕的名稱不匹配;沒有一個單選按鈕被檢查;或者檢查的單選按鈕沒有賦值。 –

6

您可能需要更改選擇:

$('input[name=q12_3]:checked').val()

0

使用這個腳本

$('input[name=q12_3]').is(":checked"); 
+3

jQuery的'is'函數將返回一個'boolean',在這種情況下將是無用的。 –

+0

是的,你是對的我沒有得到正確的問題 –

2

$('input:radio[name=q12_3]:checked').val();

4

還有另一種方式也。嘗試下面的代碼

$(document).ready(function(){ 

     $("input[name='gender']").on("click", function() { 
      alert($(this).val()); 
     }); 
}); 
相關問題