Pular validação + ajax e jsf

2 respostas
andretads

Olá galera do forum,

Estou com um problema. Tenho um select que traz meus objetos do banco, preciso selecionar uma opção nesse select para gerar um formulário de cadastro logo abaixo dele, acontece que quando seleciono um valor da primeira vez, tudo ocorre como esperado, o formulário abaixo é gerado. Porém, nesse formulário, tenho input jsf com required true. AO SELECIONAR OUTRO VALOR NO MEU SELECT, APARECE A MENSAGEM DE VALIDAÇÃO DOS INPUT’S, Gostaria de saber com pular essa validação. Já tentei o immediate mas não funciona.

Código do select
<h:selectOneMenu id=“menu” value="#{meuBean.valor}">
<f:selectItems values="#{meuBean.listaObjetos}" />
<a4j:support event=“onchange” reRender=“form”>
<a4j:ajaxListener type=“meulistener” />
</a4j:support>
</h:selectOneMenu>

grato pela atenção

2 Respostas

vanilton.coelho

eu consegui fazer isso utilizando a tag <s:subForm> do sandbox, é mais ou menos assim, você envolve o campo num <s:subForm> ai ele só será avaliado se o evento partir dele ou se vc submeter o formulario todo, claro que configurado da forma correta, assim mais ou menos:

&lt;s:subForm id="sub1"&gt;
  &lt;t:outputLabel value="minha mensagem" for="nivelSecao" id="lb_tipoNivel" forceId="true" styleClass="formLabel"/&gt;
  &lt;t:selectOneMenu value="#{meuManagedBean.meuDto.id}"
	id="nivelSecao" forceId="true" styleClass="form_combo_g" required="true"&gt;
	&lt;s:valueChangeNotifier method="#{meuManagedBean.carregaDto}" /&gt;
	&lt;f:selectItem itemLabel="selecione..." itemValue="" /&gt;
	&lt;f:selectItems value="#{meuManagedBean.tipos}" /&gt;
	&lt;s:submitOnEvent event="change" for="sub2Submit" /&gt;
  &lt;/t:selectOneMenu&gt;
  
  &lt;t:commandButton id="sub2Submit" forceId="true" style="display: none;"/&gt;
&lt;/s:subForm&gt;

e tenho uma action que tem que submeter todos os dados da página, ai fica assim:

&lt;t:commandButton value="Cadastrar" action="#{meuManagedBean.cadastrar}" id="cadastrar" forceId="true" actionFor="sub1,sub2,sub3,sub4" /&gt;

ou seja, mando submeter todos os subforms, detalhe, já que está usando subform, mesmo os campos que não serão validados, não devem ficar fora de subforms, mesmo estando dentro de um h:form, exemplo, se tem três campos que nao tem esse requisito de validação, coloca os três dentro de outro subform e nao esquece de incluir ele no input que irá submeter todos.

maurenginaldo

Coloque a propriedade no seu ajaxSupport

immediate="true"
Criado 18 de agosto de 2008
Ultima resposta 19 de ago. de 2008
Respostas 2
Participantes 3