0

我正在使用一个<h:selectOneMenu>组件。它具有disabled属性集。因此,我无法valueChangeListener在组件上使用 a 。我尝试使用该<a4j:actionListener>标签,但我收到一条错误消息,指出父标签不是 type 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 开始。disabled 属性是通过 javascript 更改的。由于我做出的设计选择,我不得不通过 javascript 执行此操作。此选择标签是用户可以使用单选按钮切换的两个标签之一。我不能使用 JSF 单选按钮标签,因为它需要一个 f:selectitem 子标签。我只需要一个单选按钮来在 2 个选择标签之间切换。

4

1 回答 1

0

disabled属性true仅在渲染响应期间评估。

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

这样,它在所有其他阶段(如应用请求值和更新模型值)都启用,允许 JSF 收集提交的值并使用它调用设置器。

另一种方法是让单选按钮使用 JSF ajax 或<a4j:jsFunction>更新下拉列表。

于 2013-02-15T01:32:44.193 回答