这是我的代码:
<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/