在javascript中获取radiobutton值

时间:2012-12-18 05:06:14

标签: javascript primefaces

我的代码如下: <p:selectOneRadio value="#{myProgram1.selectedFlag}" id="radID">
                <f:selectItems value="#{myProgram1.flags}"/>             </p:selectOneRadio> <p:commandButton value="check" onclick="check()"/>

在我的bean类中,map标志如下:

    `flags.put("1", "Apple");`
    `flags.put("2", "Boy");`

我的目标是获取所选的单选按钮值,如果我选择1,那么我应该能够在check()javascript函数中获得Apple。我的代码在h:form id="fid"之内。 我尝试过document.getElementById("fid:radID")[0].checkeddocument.getElementById("fid:radID").value。没有任何效果。 Plz帮助。

5 个答案:

答案 0 :(得分:1)

<input type="radio" name="r" id="r" value="a">

通过jQuery你可以这样做

jQuery('#r').click(function(){
            var abc = this.value;
            alert(abc);
        })

答案 1 :(得分:1)

如果使用widgetVar属性

,则会更容易
<p:selectOneRadio value="#{myProgram1.selectedFlag}" id="radID" widgetVar="selectVar">
    <f:selectItems value="#{myProgram1.flags}"/> 
</p:selectOneRadio>

然后你可以使用变量来检查javascript中的值:

selectVar.inputs[0].checked
selectVar.inputs[1].checked
selectVar.inputs[2].checked

答案 2 :(得分:0)

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

<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>

答案 3 :(得分:0)

我建议您使用name而不是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>

答案 4 :(得分:0)

非常感谢你们的优质思想。我已经解决了。 document.getElementsByName(“fid:radID”)返回一个集合。通过迭代它我能够检查radiobutton值。

谢谢sarvesh。你的方法也运作良好。