0

私は<h:selectOneMenu>コンポーネントで作業しています。disabled属性が設定されています。このためvalueChangeListener、コンポーネントで a を使用できません。タグを使用してみ<a4j:actionListener>ましたが、親タグのタイプが ではないというエラーが表示されますActionSource。選択した値が変更されたときにアクションをトリガーする他の方法はありますか?

タグは次のとおりです。

<table>
<tr>
<td><input type="radio" id="auto" name="name" value="auto" onclick="onclickfunction  (this);"> </input>
</td>
<td>
<h:selectOneMenu id="abc" value="#{bean.val}" disabled="true">
     <f:selectItem itemLabel="Select ..." itemValue=""/>    
     <f:selectItems id="list" value="#{bean.list}"/>          
     <a4j:ajax event="change" execute="@this" limitRender="true" 
     listener="#{bean.listener}" render="other" />                        
     </h:selectOneMenu> 
</td>
</tr>
<tr>
<td><input type="radio" id="manual" name="name" value="manual"   onclick="onclickfunction  (this);"> </input>
</td>
<td>
<h:selectOneMenu id="xyz" value="#{bean.val}" disabled="true">
     <f:selectItem itemLabel="Select ..." itemValue=""/>    
     <f:selectItems id="list" value="#{bean.list}"/>          
     <a4j:ajax event="change" execute="@this" limitRender="true" 
     listener="#{bean.listener}" render="other" />                        
     </h:selectOneMenu> 
</td>
</tr>
</table>

このタグは、disabled が true に設定された状態で始まります。無効な属性は、javascript を介して変更されます。私が行った設計上の選択により、javascript を介してこれを行う必要がありました。この選択タグは、ユーザーがラジオ ボタンを使用して切り替えることができる 2 つのタグの 1 つです。f:selectitem 子タグが必要なため、JSF radiobutton タグを使用できませんでした。2 つの選択タグを切り替えるためのラジオ ボタンが必要です。

4

1 に答える 1

0

レンダリング レスポンス中にのみdisabled属性を評価させます。true

<h:selectOneMenu ... disabled="#{facesContext.renderResponse}" />

このようにして、リクエスト値の適用やモデル値の更新など、他のすべてのフェーズで有効になり、JSF が送信された値を収集し、それを使用してセッターを呼び出すことができます。

別の方法は、ラジオ ボタンで JSF ajax を使用するか<a4j:jsFunction>、ドロップダウンを更新することです。

于 2013-02-15T01:32:44.193 に答える