javascript - 在 jQuery 中,当单选按钮都具有相同的名称时,如何获取它们的值?

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

最佳答案

在您的代码中,jQuery 仅查找名称为 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()函数返回一个 bool 值(真或假)而不是(一个)元素。


因为这个答案一直受到很多关注,所以我还会包含一个普通的 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>

关于javascript - 在 jQuery 中,当单选按钮都具有相同的名称时,如何获取它们的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18043452/

相关文章:

javascript - Angular.js aHrefSanitizationWhitelist 不工作?

asp.net - 学习 jQuery 网站

javascript - Slick.js 和多个 Twitter Bootstrap Modal Windows

javascript - window.getSelection 返回 html

javascript - 禁用链接几秒钟

javascript - TDD 和参数验证 Javascript

javascript - this.setState 不会更新用户对象中的嵌套数组,但是当 console.loging 相同的逻辑时,它返回一个看起来正确的对象

javascript - 带有嵌入式 javascript 的 SVG 中的动态文本比例和紧排

javascript - renderSortByOptions() 有什么作用?

jquery - 在 angular 2 中使用 jquery 小部件的最佳方法是什么?