在 jquery 对象变量中添加 ':checked' 的规则



let input = $('div').find('input');
$('button').on('click', () => {
if (input.is(':checked')){
$('p').html(input.val());
}
else {
$('p').html("No value provided");
}

});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="radio-div">
<input type="radio" id="y" name="yorn" value="Yes">
<label for="y">Yes</label><br>
<input type="radio" id="n" name="yorn" value="No">
<label for="n">No</label><br>
<button>Check Value</button>
<p>
</p>
</div>

我正在尝试逐个获取表单中所有输入的值。但是我无法获取单选按钮值,它们总是返回相同的值:

但它检查是否选中了任何输入选项,并始终返回第一个选项(即使选中了"否",input.val()也是"是"(。假设我想使用上面的变量let input而不仅仅是$('input:checked')选择器,如何使其工作?

小提琴: https://jsfiddle.net/Malvinka87/0qdj6bLw/8/

以防万一有人有同样的问题:解决方案是使用这样的方法filter

if (input.is(':checked')){
$('p').html(input.filter(':checked').val());
}

最新更新