我正在使用带有RichFaces自动填充功能的JSF 2.0进行搜索表单。当我从自动完成中选择一个值或手动输入一个值时,它未在Bean中的提交事件之前设置
value="#{pageController.searchTerm}"
按下链接提交表单后,错误的值将传递给模态窗口。 尝试onblur,onchange,onselecteditem和google之后,我不知道为什么会发生这种情况,任何想法?我只想选择一个项目,当我按下输入时,它应该被发送到Bean(@Named @RequestScoped)然后表单提交事件应该开始。 还
<a4j:ajax event="change" execute="#{pageController.searchTerm}"/>
没有解决它。
我的搜索表单
<h:form id="searchForm">
<h:panelGrid columns="3">
<rich:message for="autocomplete" ajaxRendered="true"/>
<rich:autocomplete
id="autocomplete"
mode="cachedAjax"
required="true"
requiredMessage="value required"
value="#{pageController.searchTerm}"
autocompleteMethod="#{autoCompleteBean.autocomplete}">
<f:validateLength minimum="1"/>
<a4j:ajax event="change" render="modal-title"/>
</rich:autocomplete>
<a4j:commandLink
styleClass="btn-search"
render="modal-title"
oncomplete="$('#modal').modal('show');">
<h:graphicImage styleClass="btn-search" value="resources/img/magnifying_glass.svg"/>
</a4j:commandLink>
</h:panelGrid>
</h:form>
在自动填充中使用enter时加载模态的jQuery函数来提交表单。
$('#searchForm').submit(function(event) {
event.preventDefault();
$('#modal').modal('show');
});
和PageController.java
public String getSearchTerm() {
return "";
}
public void setSearchTerm(String searchTerm) {
Values.selectedTerm = searchTerm;
}