Folks,
这是一个JSF问题,专门针对RichFaces3.3.Final
我正试图让RichFacesAjaxValidator(Rich:ajaxValidator(使用标准JSF下拉菜单(h:selectOneMenu(,但我失败得很惨。
基本上,我希望AJAX验证在下拉列表失去焦点或下拉列表中的一个项目被选中时发生。以下是我尝试的最后一件事的代码:
<h:selectOneMenu id="sector" value="#{thing.sector}">
<f:selectItems value="#{selectItemMap['sectors']}"
var="sector"
itemLabel="#{msg[sector.itemLabel]}"
itemValue="#{sector.itemValue}" />
<rich:ajaxValidator event="onblur"/>
</h:selectOneMenu>
但我也尝试过:
<rich:ajaxValidator event="oninputblur"/>
和
<rich:ajaxValidator event="onchange"/>
和
<rich:ajaxValidator event="onchanged"/>
和
<rich:ajaxValidator event="onblur"/>
<rich:ajaxValidator event="onchanged"/>
和
<rich:ajaxValidator event="onblur"/>
<rich:ajaxValidator event="onchange"/>
和
<rich:ajaxValidator event="oninputblur"/>
<rich:ajaxValidator event="onchange"/>
和
<rich:ajaxValidator event="oninputblur"/>
<rich:ajaxValidator event="onchanged"/>
然而,这些都不起作用。我的意思是,我看不到任何事情发生,尽管我可以在日志控制台中看到其他字段的事件,如h:inputText、标准HTML输入和rich:calendar。
有人成功地让Rich Faces AJAX验证为selectOneMenu字段工作吗?你是如何做到的?哦,那是什么版本的富脸?
谢谢。
以下是我使用Richfaces 3.3的旧应用程序的示例:
<h:selectOneMenu
id="users"
value="#{userBean.user}"
required="true"
requiredMessage="Selected user is required."
converter="selectItemConverter">
<rich:ajaxValidator ajaxSingle="true" event="onchange" />
<f:validator validatorId="isValidValidator" />
<t:selectItems
value="#{userBean.users}"
var="user"
itemLabel="#{user.name}"
itemValue="#{user}" />
</h:selectOneMenu>
<rich:message for="users" errorClass="error"/>
Doh!
以下确实有效:
<h:selectOneMenu id="subSector" value="#{registerContracts.currentContract.subSector}">
<f:selectItems value="#{selectItemMap['RctSectorTypes']}" var="subSector" itemLabel="#{msg[subSector.itemLabel]}" itemValue="#{subSector.itemValue}" />
<rich:ajaxValidator event="onblur"/>
<rich:ajaxValidator event="onchange"/>
</h:selectOneMenu>
显然,我在测试上述选项时不够勤奋。
很抱歉。