在表单提交之前,RichFaces自动完成输入未正确发送到Bean

时间:2016-07-26 06:46:57

标签: jquery forms jsf autocomplete richfaces

我正在使用带有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;
}

0 个答案:

没有答案