2017-08-17 73 views
0

我有一个自动完成场和输出标签来显示所选择的模块代码的标题
Primefaces AJAX处理空输入字段

<p:row> 
    <p:column> 
     <p:outputLabel for="moduleTitle" value="Module Title: " /> 
    </p:column> 
    <p:column colspan="2"> 
     <p:outputLabel id="moduleTitle" value="#{classroomBean.classroom.module.moduleTitle}"/> 
    </p:column> 
</p:row> 

<p:row> 
    <p:column> 
     <p:outputLabel for="moduleCode" value="Module Code:" /> 
    </p:column> 
    <p:column> 
     <p:autoComplete id="moduleCode" value="#{classroomBean.classroom.module}" 
completeMethod="#{classroomBean.completeModule}" dropdown="true" 
forceSelection="true" 
converter="entityConverter" maxResults="15" required="true" 
requiredMessage="Module is required." var="module" itemValue="#{module}" itemLabel="#{module.moduleCode}"> 
      <p:ajax event="itemSelect" update="moduleTitle" /> 
     </p:autoComplete> 
    </p:column> 
</p:row> 

这工作得很好,但我要的是明确的moduleTitle场时,自动填充字段为空。任何想法?我试图添加<p:ajax event="keyup" listener="#{...}" />,但没有调用backing bean方法。而且我也不知道如何从ajax获取自动填充字段的字符串长度。

回答

1

itemSelect事件的p:ajax随着keyup事件添加p:ajaxp:autoComplete组件更新尊重领域如下:

<p:autoComplete id="moduleCode" value="#{classroomBean.classroom.module}" 
    completeMethod="#{classroomBean.completeModule}" dropdown="true" 
    forceSelection="true" converter="entityConverter" maxResults="15" 
    required="true" requiredMessage="Module is required." 
    var="module" itemValue="#{module}" itemLabel="#{module.moduleCode}"> 
    <p:ajax event="keyup" update="moduleTitle" /> 
    <p:ajax event="itemSelect" update="moduleTitle" /> 
</p:autoComplete>