Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取javascript中的radiobutton值_Javascript_Primefaces - Fatal编程技术网

获取javascript中的radiobutton值

获取javascript中的radiobutton值,javascript,primefaces,Javascript,Primefaces,我的代码如下: 在my bean类中,映射标志如下所示: `flags.put("1", "Apple");` `flags.put("2", "Boy");` 我的目标是获得选中的单选按钮值,比如说,如果我选择1,那么我应该能够在check()javascript函数中获得Apple。我的代码在h:form id=“fid”中。 我尝试了document.getElementById(“fid:radID”)[0]。选中了和document.getElementByI

我的代码如下:

在my bean类中,映射标志如下所示:

    `flags.put("1", "Apple");`
    `flags.put("2", "Boy");`
我的目标是获得选中的单选按钮值,比如说,如果我选择1,那么我应该能够在check()javascript函数中获得Apple。我的代码在
h:form id=“fid”
中。
我尝试了
document.getElementById(“fid:radID”)[0]。选中了
document.getElementById(“fid:radID”).value
。什么都没用。Plz帮助。

如果您有一组具有相同名称的单选按钮,您可以通过迭代相同名称按钮的集合来获取值,例如

<input type="radio" name="r" id="r" value="a">
<form ...>
  <input type="radio" name="foo" value="0" checked>0<br>
  <input type="radio" name="foo" value="1">1<br>
  <input type="radio" name="foo" value="2">2<br>
  <input type="radio" name="foo" value="3">3<br>

  <input type="button" value="show value" onclick="
    var radios = this.form.foo;

    for (var i=0, iLen=radios.length; i<iLen; i++) {

      if (radios[i].checked) {
        alert(radios[i].value);
      }
    }
  ">
  <input type="reset">
</form>

0
1
2
3

我建议您使用名称而不是id,因为元素id应该是唯一的。 我修改了您的代码,以便使用元素名称来管理:

<p:selectOneRadio value="#{myProgram1.selectedFlag}" id="radID" name="programm[]">
<f:selectItems value="#{myProgram1.flags}"/> </p:selectOneRadio> <p:commandButton value="check" onclick="check()"/>
<script>
function check()
{
    var arrElements=document.getElementsByName('programm[]');
    $(arrElements).each(function(i,ele){
        if($(ele).attr('checked'))
        {
          /*Your application logic comes here*/
              /*To get Value of checked radio button use : ele.value */
        }
    });
}
</script>

函数检查()
{
var arrElements=document.getElementsByName('programm[]);
$(arrElements)。每个(函数(i,ele){
if($(ele.attr('选中'))
{
/*您的应用程序逻辑在这里*/
/*要获取选中单选按钮的值,请使用:ele.Value*/
}
});
}

谢谢大家提出的高质量想法。我已经解决了。getElementsByName(“fid:radID”)返回一个集合。通过迭代,我可以得到选中的radiobutton值


也谢谢萨维什。你的方法也很有效

如果使用widgetVar属性,会更容易

<p:selectOneRadio value="#{myProgram1.selectedFlag}" id="radID" widgetVar="selectVar">
    <f:selectItems value="#{myProgram1.flags}"/> 
</p:selectOneRadio>

谢谢你的回复。但我面临着这个问题,尤其是在这个primefaces案例中(p:selectOneRadio)。@user17。。如果你有更多的单选按钮,你可以像这样使用jQuery('#r')。单击(函数(){替换为jQuery('input:radio')。单击(函数(){感谢RobG的回复。但是我面临这个问题,特别是在这个primefaces案例中(p:selectOneRadio)。错过了primefaces标记。我不知道,在浏览器中发布你实际得到的内容(即HTML)。谢谢Sarvesh。我已经解决了它,我的方法与你的类似。非常感谢你分享你的想法。
<p:selectOneRadio value="#{myProgram1.selectedFlag}" id="radID" widgetVar="selectVar">
    <f:selectItems value="#{myProgram1.flags}"/> 
</p:selectOneRadio>
selectVar.inputs[0].checked
selectVar.inputs[1].checked
selectVar.inputs[2].checked