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を選択した場合、check() javascript関数でAppleを取得できるはずです。私のコードはh:form id="fid". 私は試してみdocument.getElementById("fid:radID")[0].checkedましdocument.getElementById("fid:radID").valueた。何も機能しませんでした。助けてください。

4

5 に答える 5

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 に答える
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 に答える
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

あなたの質の高い考えに感謝します。私はそれを解決しました。document.getElementsByName("fid:radID") はコレクションを返します。それを繰り返すことで、チェックされたラジオボタンの値を取得できます。

sarvesh にも感謝します。あなたの方法もうまくいきました。

于 2012-12-18T06:03:18.483 に答える
0

要素 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 に答える