Galera, to levando um surra dos componentes richFaces.
Por exemplo, tenho um modalPanel e uma funcão javascript para validar os campos desse mesmo modelPanel, mas acontece que, fora das tags modelPanel, tenho 1 Rich suggestionBox, o que força a abertura de outra tag form. Do contrário a aplicação gera erro e não sobe.
Só que quando insiro outra tag Form, a função javascript não é lida e a validação não ocorre.
Eis o meu código:
<ui:composition>
<ui:include src="/template/menu.xhtml" />
<head>
<script type="text/javascript">
function windowclose(){
if (document.getElementById('mp_form:error')==null){
Richfaces.hideModalPanel('panelNovo');
};
};
</script>
</head>
<f:view>
<h:form>
<h:outputText value="Nome" />
<h:inputText id="nomePesquisado"
value="#{funcionarioMB.funcionario.nome}" />
<rich:suggestionbox suggestionAction="#{funcionarioMB.autoCompletar}"
for="nomePesquisado" var="_func">
<h:column>
#{_func.nome}
</h:column>
</rich:suggestionbox>
<a4j:commandLink ajaxSingle="true" id="newlink"
oncomplete="#{rich:component('panelNovo')}.show()">
<h:outputText value="Novo" />
</a4j:commandLink>
<rich:modalPanel id="panelNovo" autosized="true" width="650">
<f:facet name="header">
<h:outputText value="Informações pessoais" />
</f:facet>
<f:facet name="controls">
<h:panelGroup>
<h:commandButton value="X" id="fecharNovo" />
<rich:componentControl for="panelNovo" attachTo="fecharNovo"
operation="hide" event="onclick" />
</h:panelGroup>
</f:facet>
<h:form id="mp_form">
<a4j:outputPanel ajaxRendered="true">
<h:messages id="error"></h:messages>
</a4j:outputPanel>
<f:facet name="header">
<h:panelGroup>
<h:outputText value="Cadastro" />
</h:panelGroup>
</f:facet>
<h:panelGrid columns="2" id="inputs">
<h:outputLabel value="Nome " />
<h:panelGroup>
<h:inputText id="nome" value="#{funcionarioMB.funcionario.nome}"
size="40" required="true"
requiredMessage="Campo nome obrigatório">
</h:inputText>
</h:panelGroup>
<h:outputLabel for="email" value="E-mail " />
<h:panelGroup>
<h:inputText id="email"
value="#{funcionarioMB.funcionario.email}" required="true"
requiredMessage="Campo e-mail obrigatório!" size="30" />
</h:panelGroup>
<h:outputLabel for="cpf" value="CPF " />
<h:inputText id="cpf" value="#{funcionarioMB.funcionario.cpf}"
size="12" requiredMessage="Campo cpf obrigatório" required="true">
</h:inputText>
<h:outputLabel for="dataNasc" value="Data Nascimento " />
<h:panelGroup>
<rich:calendar id="dataNasc"
value="#{funcionarioMB.funcionario.dataNascimento}"
datePattern="dd/MM/yyyy" required="true"
requiredMessage="Campo Data Obrigatório"></rich:calendar>
</h:panelGroup>
<h:outputLabel for="telCel" value="Tel. Celular " />
<h:panelGroup>
<h:inputText id="telCel"
value="#{funcionarioMB.funcionario.telefoneCelular}" size="11"
required="true"
requiredMessage="Campo telefone celular obrigatório">
</h:inputText>
</h:panelGroup>
<h:outputText value="Setor" />
<h:panelGroup>
<h:selectOneMenu value="#{funcionarioMB.funcionario.setor.id}">
<f:selectItems value="#{funcionarioMB.listItemSetores}" />
</h:selectOneMenu>
</h:panelGroup>
</h:panelGrid>
<a4j:commandButton value="Inserir"
action="#{funcionarioMB.saveOrUpdate}" status="sts"
oncomplete="windowclose();" reRender="Informações pessoais" />
</h:form>
</rich:modalPanel>
</h:form>
</f:view>
</ui:composition>
</html>
Alguém sabe como posso utilizar esses componentes de outra maneira ?