108

这是我的代码:

<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。为什么?谁能帮我?

4

7 回答 7

228

在您的代码中,jQuery 仅查找具有 name 的输入的第一个实例q12_3,在本例中其值为1。您想要一个名称q12_3为的输入:checked

$("#submit").click(() => {
  const val = $('input[name=q12_3]:checked').val();
  alert(val);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.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()函数返回一个布尔值(真或假)而不是(一个)元素。


因为这个答案一直受到很多关注,所以我还将包含一个普通的 JavaScript 片段。

document.querySelector("#submit").addEventListener("click", () => {
  const val = document.querySelector("input[name=q12_3]:checked").value;
  alert(val);
});
<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>

于 2013-08-04T13:33:07.863 回答
16

在您的选择器中,您还应该指定您想要选中的单选按钮:

$(function(){
    $("#submit").click(function(){      
        alert($('input[name=q12_3]:checked').val());
    });
 });
于 2013-08-04T13:32:05.450 回答
7

您可能想要更改选择器:

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

于 2013-08-04T13:32:26.203 回答
7

还有另一种方法。试试下面的代码

$(document).ready(function(){

      $("input[name='gender']").on("click", function() {
            alert($(this).val());
        });
});
于 2015-10-24T18:00:49.850 回答
2

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

于 2015-02-24T03:44:17.307 回答
1

演示https ://jsfiddle.net/ipsjolly/xygr065w/

$(function(){
    $("#submit").click(function(){      
        alert($('input:radio:checked').val());
    });
 });
于 2017-08-01T05:58:45.260 回答
0

使用这个脚本

$('input[name=q12_3]').is(":checked");
于 2013-08-04T13:38:17.727 回答