我有两个单选按钮,希望发布所选按钮的值。如何使用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();
 }