我怎么知道通过 jQuery 选择了哪个单选按钮?

我有两个单选按钮,想要发布所选一个的值。如何使用 jQuery 获得价值?

我可以像这样得到所有这些:

$("form :radio")

我怎么知道选择了哪一个?

答案

要获取 ID 为myForm的表单的选定 radioName项目的值:

$('input[name=radioName]:checked', '#myForm').val()

这是一个例子:

$('#myForm input').on('change', function() {
   alert($('input[name=radioName]:checked', '#myForm').val()); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="myForm">
  <input type="radio" name="radioName" value="1" /> 1 <br />
  <input type="radio" name="radioName" value="2" /> 2 <br />
  <input type="radio" name="radioName" value="3" /> 3 <br />
</form>

用这个..

$("#myform input[type='radio']:checked").val();

如果您已经有对单选按钮组的引用,例如:

var myRadio = $("input[name=myRadio]");

使用filter()函数,而不是find() 。 ( find()用于定位子元素 / 后代元素,而filter()搜索所选内容中的顶级元素。)

var checkedValue = myRadio.filter(":checked").val();

注意:该答案最初是在纠正使用find()建议的另一个答案,此答案似乎已被更改。对于已经引用了容器元素而不是单选按钮的情况, find()仍然很有用,例如:

var form = $("#mainForm");
...
var checkedValue = form.find("input[name=myRadio]:checked").val();

这应该工作:

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

请注意在 input:checked 周围使用的 “”,而不是像 Peter J 的解决方案那样使用”

您可以将:checked 选择器与单选按钮一起使用。

$("form:radio:checked").val();

如果只需要布尔值,即是否选中,请尝试以下操作:

$("#Myradio").is(":checked")

获取所有收音机:

var radios = jQuery("input[type='radio']");

筛选以获取多数民众赞成在检查

radios.filter(":checked")

另一个选择是:

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

这是我编写表单并处理获取已检查单选的方式。

使用名为 myForm 的表单:

<form id='myForm'>
    <input type='radio' name='radio1' class='radio1' value='val1' />
    <input type='radio' name='radio1' class='radio1' value='val2' />
    ...
</form>

从表单获取值:

$('#myForm .radio1:checked').val();

如果您不发布此表单,我将使用以下方法进一步简化它:

<input type='radio' class='radio1' value='val1' />
<input type='radio' class='radio1' value='val2' />

然后获取检查值变为:

$('.radio1:checked').val();

输入上有一个类名,使我可以轻松设置输入的样式...