2017-08-17 76 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>