rich:自动完成重新呈现标签

时间:2014-07-15 15:00:14

标签: jsf richfaces jboss6.x

我有一个jsf形式的2个字段。字段1使用rich:autocomplete,字段2使用inputText。我在字段2中键入无效数据,以便显示验证消息。接下来,我开始在字段1中键入。一旦我这样做,字段2中的验证消息就会消失。我该如何防止这种情况?

<h:outputLabel value="Field 1:" escape="false"/>
                                        <h:panelGroup>
                                                <rich:autocomplete id="id1" mode="ajax" showButton="false"
                                                                        autocompleteMethod="#{bean.method}"
                                                                        autocompleteList="#{bean.aList}"  
                                                                        value="#{bean.field}"
                                                                        required="true"
                                                                        requiredMessage="Field 1 required">                
                                                         <a4j:ajax event="blur" execute="@this" bypassUpdates="#{true}" render="id1,id1Msg" />
                                        </rich:autocomplete>
                                        <rich:message for="id1" id="id1Msg" />
                                </h:panelGroup>



<h:outputLabel for="id2" value="Field 2:"/>
                                <h:panelGroup>
                                        <h:inputText id="id2" value="#{bean.field2}" style="width: 175px;" required="true" requiredMessage="Field 2 required" validatorMessage="Field 2 Please enter digits only" converterMessage="Field 2 - Please enter digits only">
                                                <f:ajax event="change" execute="@this"  bypassUpdates="#{true}" render="id2Msg"/>
                                        </h:inputText>
                                        <rich:message for="id2" id="id2Msg"/>  
                                </h:panelGroup>

2 个答案:

答案 0 :(得分:0)

execute="@form"上设置id2。这将导致id2始终触发整个表单的提交,即使它失去焦点,也会导致验证消息出现

execute="@this"上的{p> id2表示只会触发父组件

答案 1 :(得分:0)

我在id1上使用execute =“@ form”获得了所需的行为。