Java 如何防止在空白中单击“富:自动完成”组件时提交表单?

Java 如何防止在空白中单击“富:自动完成”组件时提交表单?,java,jsf,jsf-2,autocomplete,richfaces,Java,Jsf,Jsf 2,Autocomplete,Richfaces,我正在我的项目中实现rich:autocomplete组件。 我的问题是,当我要点击空白的自动完成组件时,我的表单就被提交了。 我不明白为什么我的代码会在空白自动完成点击时提交表单? 我的自动完成代码 <rich:autocomplete mode="ajax" minChars="3" autofill="false" autocompleteMethod="#{bean.autocompletePersonName}" layout="

我正在我的项目中实现rich:autocomplete组件。 我的问题是,当我要点击空白的自动完成组件时,我的表单就被提交了。 我不明白为什么我的代码会在空白自动完成点击时提交表单? 我的自动完成代码

<rich:autocomplete  mode="ajax" minChars="3" autofill="false"
                        autocompleteMethod="#{bean.autocompletePersonName}" layout="div" var="var"
                        fetchValue="#{var.employeeCode}" onselectitem="addPersonName(this.value)">  
                            <rich:column> #{bean.employeeCode} </rich:column>
                    </rich:autocomplete>
我的纽扣

 <h:commandButton id="saveBtn" value="save" action="#{beans.methodA}" />
  <h:commandButton id="cancelBtn"  value="cancel" onclick="window.location ='#{request.contextPath}/page/page'" />

当我要单击空白的自动完成组件时,在保存按钮上执行操作意味着调用方法a方法

我无法复制您的问题,您使用的RichFaces版本是什么?另外{bean.employeeCode}应该是{var.employeeCode}。当我点击空白的“自动完成”时,页面被提交。这意味着它调用methodA method正如我所说的,我无法复制它。您可以尝试使用来找出发生了什么,它可能是执行整个表单的其他内容。