0

これについてはすでにいくつかのトピックがあることは知っていますが、どこかに欠陥があるだけで正しい概念を持っていると思います。radioButton がチェックされているかどうかを判断する if ステートメントが必要です。以下は私のコードです。

if($j("input:radio[name=selector1]").is(":checked")){
   //do something here
}


<p:selectOneRadio id="radioButtonsId" widgetVar="rb1">

    <f:selectItem id="selector1" itemLabel="Yes" itemValue="true"/>
    <f:selectItem id="selector2" itemLabel="No" itemValue="false"/>

</p:selectOneRadio>

if ブロックの名前が間違っているのではないかと思っています。また、primeFaces と jQuery を一緒に使用すると、多くの問題が発生しました。

4

1 に答える 1

1

これが機能しない理由は、セレクターが原因ですinput:radio[name=selector1]。id selector1は、入力タグのIDでも名前でもありません。ラジオ ボタン グループの入力タグのID名前は、命名規則に従います。

ID :formId:selectOneRadioId:indexOfTagInGroup

名前:formId:selectOneRadioId

したがって、あなたの場合、selector1の名前はにsomeGeneratedJSFId:radioButtonsIdなり、idは になりますsomeGeneratedJSFId:radioButtonsId:0。この特定の要素を選択するには、次を使用できます。

 $("input:radio[id*=radioButtonsId\\:0]")
  • id*=指定した文字列を含むIDを持つラジオ ボタンを選択します
  • \\のようなメタ文字のエスケープ文字です:
  • 0ラジオ ボタン グループの最初の入力タグを選択します

そのため、代わりに次のことを試してください。

 if($("input:radio[id*=radioButtonsId\\:0]").is(":checked")){
    //do something here
 }

<p:selectOneRadio id="radioButtonsId" widgetVar="rb1">
     <f:selectItem id="selector1" itemLabel="Yes" itemValue="true"/>
     <f:selectItem id="selector2" itemLabel="No" itemValue="false"/>
</p:selectOneRadio>
于 2012-09-25T18:11:22.033 に答える