2013-08-04 14 views
103

Đây là mã của tôi:Trong jQuery, làm thế nào để có được giá trị của một nút radio khi tất cả chúng đều có cùng tên?

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

Đây là JS:

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

Đây là JSFIDDLE! Mỗi khi tôi nhấp vào nút, nó sẽ trả về 1. Tại sao? Ai giúp tôi với?

Trả lời

218

Trong code của bạn, jQuery chỉ trông cho ví dụ đầu tiên của một đầu vào có tên q12_3, trong trường hợp này có giá trị là 1. Bạn muốn có đầu vào có tên 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>

Lưu ý rằng đoạn code trên là không giống như sử dụng .is(":checked"). Hàm is() của jQuery trả về một phần tử boolean (đúng hoặc sai) và không phải (an).

15

trong chọn của bạn, bạn cũng nên xác định rằng bạn muốn radiobutton kiểm tra:

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

Tôi nhận được 'undefined' giá trị –

+0

@PavanAlapati Chúng ta có thể không thực sự cho bạn biết lý do tại sao mà không nhìn thấy HTML của bạn cũng; lý tưởng nhất là bạn sẽ đăng câu hỏi mới với đoạn mã HTML chính xác và mã bạn đang sử dụng. Bạn chỉ nên nhận được mặc định, nếu: Tên trong bộ chọn không khớp với tên của các nút vô tuyến; không ai trong số các radio được kiểm tra; hoặc radiobutton đã chọn không có giá trị được chỉ định. –

6

Bạn có thể muốn thay đổi selector:

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

0

sử dụng kịch bản này

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

Hàm 'is' của jQuery sẽ trả về một' boolean', trong trường hợp này sẽ là vô ích. –

+0

yeah bạn nói đúng Tôi đã không nhận được câu hỏi đúng –

2

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

4

Có một cách khác cũng có. Hãy thử mã dưới đây

$(document).ready(function(){ 

     $("input[name='gender']").on("click", function() { 
      alert($(this).val()); 
     }); 
}); 
Các vấn đề liên quan