让我们考虑以下简化示例:
我们有两个标签<rich:tabPanel switchType="ajax">
,每个标签都有<h:inputText value="" required="true" />
,目前我们想从一个标签切换到另一个标签,而inputText是空的(我们不想提交值无论如何,我们想要转到另一个标签,我们得到"Validation Error: Value is required."
示例代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich"
>
<a4j:form id="mainForm"
reRender="mainForm"
ajaxSubmit="true">
<rich:tabPanel switchType="ajax">
<rich:tab label="TabA" >
<a4j:region>
<h:outputText value="Tab A content" />
<h:inputText value="" required="true" />
</a4j:region>
</rich:tab>
<rich:tab label="TabB">
<a4j:region>
<h:outputText value="Tab B content" />
<h:inputText value="" required="true" />
</a4j:region>
</rich:tab>
</rich:tabPanel>
<rich:messages />
</a4j:form>
</html>
答案 0 :(得分:1)
您应该将“immediate”属性添加到tabPanel。引用docs这意味着tabPanel:
“...必须转换组件值 立即验证(即在期间) 相反,应用请求值阶段) 而不是等到一个过程 验证阶段“
例如:
<rich:tabPanel switchType="ajax" immediate="true">