【问题标题】:Does Rich Faces AjaxValidator work with selectOneMenuRichfaces Ajax Validator 是否与 selectOneMenu 一起使用
【发布时间】:2011-05-05 10:39:00
【问题描述】:

伙计们,

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

我试图让 Rich Faces Ajax 验证器 (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 字段,您是如何做到的?哦,对于什么版本的 Rich Faces?

谢谢。

【问题讨论】:

    标签: jsf richfaces


    【解决方案1】:

    这是我使用 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"/>
    

    【讨论】:

      【解决方案2】:

      哇!

      以下确实有效:

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

      显然我在测试上述选项时不够勤奋。

      对此感到抱歉。

      【讨论】:

        猜你喜欢
        • 2022-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-03
        • 1970-01-01
        • 2017-04-24
        • 1970-01-01
        • 2011-10-16
        相关资源
        最近更新 更多