Richfaces Ajax验证是否适用于selectOneMenu

时间:2011-05-05 10:39:00

标签: jsf richfaces

民间,

这是一个JSF问题,专门针对Rich Faces 3.3.3.Final

我正在尝试使用Rich Faces Ajax Validator(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。

有没有人设法让selectOneMenu字段的Rich Faces AJAX验证工作,你是怎么做到的?哦,还有什么版本的Rich Faces?

感谢。

2 个答案:

答案 0 :(得分:0)

以下是使用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"/>

答案 1 :(得分:0)

卫生署!

以下内容有效:

<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>

我显然没有足够的努力来测试上述选项。

很抱歉。