如何在RichFaces 3.3.x中取消选项卡面板开关

|| 我需要对表单进行一些基本验证。表单数据在5个选项卡中分解,用户应该能够从任何选项卡提交表单。到目前为止,一切都很好。如果用户尚未填写字段,或者输入的数据无效,我想保留在当前选项卡上,则显示错误消息并取消选项卡开关。 我尝试了各种可以找到的事件。是否有人知道这是否可行以及我将如何实现?如果可能,我希望将其保留在javascript客户端中。 使用如下代码示例。
<rich:tabPanel selectedTab=\"Info\" switchType=\"client\" contentClass=\"hz-record-tabpanel\" ontabchange=\"doTabChange();\"  onbeforeitemchange=\"doTabChange();\" onbeforetabchange=\"doTabChange();\">
                <rich:tab name=\"Info\" label=\"Tab Label\" onlabelclick=\"doTabChange();\">
                    <ui:include src=\"info.xhtml\" />
                </rich:tab>
                <rich:tab name=\"Officers\" label=\"Officers\" onlabelclick=\"doTabChange();\" ontableave=\"doTabChange();\">
                    <ui:include src=\"officers.xhtml\" />
                </rich:tab>
                <rich:tab name=\"CardServices\" label=\"Card Services\" onlabelclick=\"doTabChange();\">
                    <ui:include src=\"cardservices.xhtml\" />
                </rich:tab> 
                <rich:tab name=\"M2MLimits\" label=\"M2M Limits\" onlabelclick=\"doTabChange();\">
                    <ui:include src=\"m2mlimits.xhtml\" />
                </rich:tab> 
                <rich:tab name=\"AccountServices\" label=\"Account Services\" onlabelclick=\"doTabChange();\">
                    <ui:include src=\"accountservices.xhtml\" />
                </rich:tab>                 
            </rich:tabPanel>
有任何想法吗?     
已邀请:
        经过良好的验证后,我使用这种按钮来关闭rich:modalPanel:
<a4j:commandButton id=\"btnModify\" value=\"Modifier\" actionListener=\"#{editCityActions.onButtonModifyClick}\" data=\"#{facesContext.maximumSeverity.ordinal ge 2}\" oncomplete=\"if(event.data == false) { #{rich:component(\'frmEditCity\')}.hide(); }\" render=\"tblCities\" />
我认为您可以使用a4j:ajax或类似的东西应用事件!     
        我们最终移至Richfaces 4(4.2),我成功使用了
itemchange
beforeitemchange
事件。 这些事件触发两次(还没有发现),因此您不希望处理程序代码中的内容过于紧张。 如果
beforeitemchange
返回false(两次),则选项卡面板将不会切换。 我正在使用
itemchange
事件触发任何额外的JavaScript来格式化数据,并将焦点放在该选项卡上的表单的第一个输入字段上。     

要回复问题请先登录注册