これはjQueryを使用して簡単に行うことができます。これらのセレクターを見てください。
そしてprop()関数について。
ここで要点:
要素をより適切に操作するには、ラッピングでids
使用prependId="false"
します。form
p:selectOneRadio
ページを再読み込みしたくないので、で使用ajax="true"
しp:commandButton
ます。
<p:commandButton value="select" ajax="true" onclick="selectRadios()" update="@form"/>
Primefacesを指定するid
と、レンダリングされたHTMLページの属性として使用されます。もちろん、要素で使用しない場合、primefacesはラジオ属性に追加されるため、のように見えます。それで。_p:selectOneRadio
name
input type="radio"
prependId="false"
form
forms
id
name
name="formId:radio1"
prependId="false"
name="radio1"
これで、ラジオボタンに特定のものがあることがわかったら、簡単な機能で、これによって指定された各グループの最初name
を選択できます。name
function selectRadios(){
jQuery('input[name=radio1]:first').prop('checked', true);
jQuery('input[name=radio2]:first').prop('checked', true);
};
したがって、コード全体は次のようになります。
<script type="text/javascript">
function selectRadios(){
jQuery('input[name=radio1]:first').prop('checked', true);
jQuery('input[name=radio2]:first').prop('checked', true);
};
</script>
<h:form id="formID" prependId="false">
<p:selectOneRadio id="radio1" value="#{testBean.radio1}">
<f:selectItem itemLabel="Wide" itemValue="1" />
<f:selectItem itemLabel="No Ball" itemValue="2" />
<f:selectItem itemLabel="Normal" itemValue="3" />
</p:selectOneRadio>
<p:selectOneRadio id="radio2" value="#{testBean.radio2}">
<f:selectItem itemLabel="1" itemValue="1" />
<f:selectItem itemLabel="2" itemValue="2" />
<f:selectItem itemLabel="3" itemValue="3" />
</p:selectOneRadio>
<p:commandButton value="select" ajax="true" onclick="selectRadios()" update="@form"/>
</h:form>
注p:selectOneRadio
:次の方法で全体を更新したくない場合は、それぞれを個別に更新することもできますform
。update="radio1 radio2"
編集
GETをクリックすると、関連するUIアイコンが取得されるため(少なくとも最初のクリックでは)、作成radio button
せずに(テーマを使用しながら)プライムフェイスでを選択する方法がわかりません。あなたがそれで大丈夫なら、読み続けてください。request
radio button
request
あなたは古典を作りたくないし、あなたのタイプを変えたくHTTP request
ないので:AJAX request
commandButton
<p:commandButton type="button" value="Default select" id="selButtonId" onclick="selectRadios();" />
そして、このjs
関数を使用してクリックをトリガーしますradio button
:
function selectRadios(){
jQuery('[for=radio1\\:0]').click();
jQuery('[for=radio2\\:0]').click();
};
ID
ofは+ :xradio button
として使用されます。ここで、xはの実際の注文番号です。(0が最初です)。ボタン自体の代わりにクリックしたいので、これは関数の適切な使用方法です。ここで説明します。label
button
click()
label
注: Primefaces ver 3.1.1は、要素の更新メソッドをサポートしないjQuery ver 1.6.xにバンドルされていbutton
ます(ver 1.8以降でサポートされています)。それ以外の場合は使用できます:
function selectRadios(){
jQuery('input[name=radio1]:first').prop('checked', true).button("refresh");
jQuery('input[name=radio2]:first').prop('checked', true).button("refresh");
};
したがって、上記のIMHOは、状況に応じてできることのすべてです。方法に代わるものがあるかどうかはわかりませんbutton
refresh
。私が間違っていれば、誰かが私を確実に訂正してくれるでしょう。
よろしく