我有一个自动填充字段和一个输出标签,用于显示所选模块代码的标题
<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="#{...}" />
但是没有调用支持bean方法。我也不知道如何从ajax获取自动完成字段的字符串长度。
答案 0 :(得分:1)
在p:ajax
组件上添加keyup
p:ajax
个事件以及itemSelect
p: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>