1

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

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

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

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

4

5 回答 5

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

通过 jQuery 你可以这样做

jQuery('#r').click(function(){
            var abc = this.value;
            alert(abc);
        })
于 2012-12-18T05:18:42.293 回答
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
于 2013-04-17T13:19:42.253 回答
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>
于 2012-12-18T05:36:23.047 回答
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>
于 2012-12-18T05:51:04.383 回答
0

好吧,谢谢你们的质量想法。我已经解决了。document.getElementsByName("fid:radID") 返回一个集合。通过迭代它,我可以获得选中的单选按钮值。

也感谢 sarvesh。你的方法也很好用。

于 2012-12-18T06:03:18.483 回答