Jsf 根据ui:重复列表中特定复选框元素的值禁用InputExtArea元素?
如何根据Jsf 根据ui:重复列表中特定复选框元素的值禁用InputExtArea元素?,jsf,Jsf,如何根据ui:repeat列表中特定复选框的值动态禁用inputTextarea <ui:repeat var="eligibilityReason" value="#{itemDetails.itemSelected.listEligibilityReasons}"> <h:selectBooleanCheckbox id="eligibilityReasonOptId"
ui:repeat
列表中特定复选框的值动态禁用inputTextarea
<ui:repeat var="eligibilityReason"
value="#{itemDetails.itemSelected.listEligibilityReasons}">
<h:selectBooleanCheckbox id="eligibilityReasonOptId"
value="#{eligibilityReason.selected}"/>
<h:outputText value="#{eligibilityReason.eligiReasonDescr}"/>
</ui:repeat>
<h:inputTextarea id="ineligiReasonOtherId"
value="#{itemDetails.itemSelected.ineligiReasonOther}"
disabled="???" />
listEligibilityReasons
获取一个列表
。因此,我如何仅根据eligiReason='99'
的选中/复选框值动态启用/禁用inputExtArea
?类似的操作应该可以完成。ajax事件仅针对第99项触发,并调用Java方法为文本区域设置布尔标志。这是未经测试,但给你的想法,你需要做什么
爪哇:
boolean textAreaEnabled=false;
公共失效原因99(AjaxBehaviorEvent事件){
textAreaEnabled=event.getSource().getValue();
}
这是否应该立即发生?还是应该在提交表格时发生?根据您的目标,方法会略有不同。如果使用表单,则可以将valueChangeListener
属性与表单提交结合使用来进行更新。如果我们不是在讨论表单提交,那么最好的方法是在selectBooleanCheckbox
下使用f:ajax
标记,并将侦听器与execute
属性结合使用,以更新inputTextArea
的目标。如果你能指定,我可以立即给你看一个完整的例子。复选框的重复列表总共有9个复选框,我希望只有选中第9个复选框时才能启用InputExtArea。谢谢有点像这样。对于PrimeFaces,当您触发ajax事件以确定它应该更新和显示/隐藏的内容时,您可能还希望update=“InqualificationReasonOtherId”
。如果你使用香草JSF,你可以使用render
和f:ajax
来实现基本相同的功能。谢谢你更新了我的答案。
private String eligiReason;
private String eligiReasonDescr;
private boolean selected;