我有两个单选按钮,希望发布所选按钮的值。如何使用jQuery获取值?
我可以得到所有这些:
$("form :radio")
我如何知道选择了哪一个?
我有两个单选按钮,希望发布所选按钮的值。如何使用jQuery获取值?
我可以得到所有这些:
$("form :radio")
我如何知道选择了哪一个?
当前回答
我使用这个简单的脚本
$('input[name="myRadio"]').on('change', function() {
var radioValue = $('input[name="myRadio"]:checked').val();
alert(radioValue);
});
其他回答
我发布了一个库来帮助解决这个问题。实际上,提取所有可能的输入值,但也包括选中的单选按钮。你可以在https://github.com/mazondo/formalizedata
它将为您提供一个包含答案的js对象,因此表单如下:
<form>
<input type="radio" name"favorite-color" value="blue" checked> Blue
<input type="radio" name="favorite-color" value="red"> Red
</form>
将给您:
$("form").formalizeData()
{
"favorite-color" : "blue"
}
此外,检查用户是否未选择任何内容。
var radioanswer = 'none';
if ($('input[name=myRadio]:checked').val() != null) {
radioanswer = $('input[name=myRadio]:checked').val();
}
此解决方案不需要jQuery。
const RADIO_NAME = "radioName";
const radios = Array.from(document.getElementsByName(RADIO_NAME));
const checkedRadio = radios.filter(e=>e.checked);
这使用jQuery:
const radios = Array.from($(`[name=${RADIO_NAME}`));
const checkedRadio = radios.filter(e=>e.checked);
jQuery添加了这里不需要的额外抽象层。
您还可以使用:
const radios = Array.from(document.querySelectorAll(`[name=${RADIO_NAME}`));
const checkedRadio = radios.filter(e=>e.checked)[0];
但getElementsByName足够简单明了。
在JSF生成的单选按钮(使用<h:selectOneRadio>标记)中,可以执行以下操作:
radiobuttonvalue = jQuery("input[name='form_id\:radiobutton_id']:checked").val();
其中selectOneRadio ID是radiobutton_ID,表单ID是form_ID。
如图所示,请务必使用name而不是id,因为jQuery使用这个属性(名称由JSF自动生成,类似于控件id)。
$(".Stat").click(function () {
var rdbVal1 = $("input[name$=S]:checked").val();
}