O usuário digita um valor inválido no campo inpFilterValue e clica no botão Salve, o que vai disparar a validação e a mensagem de validação será exibida.
Então o usuário clica no botão Cancelar para descartar as alterações, o comportamento desejado é que os valores voltem ao estado original (ou em branco no caso de inclusão).
Porém devido a validação previamente executada, o valor incorreto é mantido no campo que estava inválido.
Vejam que o botão Cancelar foi configurado para não processar outros componentes. Isto funciona, desde que o usuário não tenha clicado no botão salvar previamente.
Já passei por situação similar.
No meu caso eu validava na própria página com campos requeridos (required=“true”).
Então ao editar o formulário, clicar em Salvar e reprovar na validação, mesmo que eu quisesse cancelar a operação posteriormente o objeto parecia não sair daquele estado de validação. A página ficava trancada, o load e nem o new no objeto não funcionavam.
“Resolvi” dando refresh na página (submit) para forçar a saída daquele estado.
[quote=mrbbm]Já passei por situação similar.
No meu caso eu validava na própria página com campos requeridos (required=“true”).
Então ao editar o formulário, clicar em Salvar e reprovar na validação, mesmo que eu quisesse cancelar a operação posteriormente o objeto parecia não sair daquele estado de validação. A página ficava trancada, o load e nem o new no objeto não funcionavam.
“Resolvi” dando refresh na página (submit) para forçar a saída daquele estado.[/quote]
Pode ser uma solução, mas aí também encontrei uma solução alternativa, que vou adotar caso não solucione de outra forma: retornar uma mensagem FacesMessage.SEVERITY_WARN ao invés FacesMessage.SEVERITY_ERROR e controlar a validação do campo no bean, inclusive o required. Desta forma não deixou a view em estado inválido.
Mesmo assim aceito sugestões para corrigir de uma menos “alternativa”.
só o process="@this" update="@form" já é suficiente pra fazer funcionar… eu uso e funciona perfeito, use actionListener em vez de action, tira esse disabled por enquanto e testa…
[quote=lordaj]só o process="@this" update="@form" já é suficiente pra fazer funcionar… eu uso e funciona perfeito, use actionListener em vez de action, tira esse disabled por enquanto e testa…
[quote=valdair.mts][quote=mrbbm]Já passei por situação similar.
No meu caso eu validava na própria página com campos requeridos (required=“true”).
Então ao editar o formulário, clicar em Salvar e reprovar na validação, mesmo que eu quisesse cancelar a operação posteriormente o objeto parecia não sair daquele estado de validação. A página ficava trancada, o load e nem o new no objeto não funcionavam.
“Resolvi” dando refresh na página (submit) para forçar a saída daquele estado.[/quote]
Pode ser uma solução, mas aí também encontrei uma solução alternativa, que vou adotar caso não solucione de outra forma: retornar uma mensagem FacesMessage.SEVERITY_WARN ao invés FacesMessage.SEVERITY_ERROR e controlar a validação do campo no bean, inclusive o required. Desta forma não deixou a view em estado inválido.
Mesmo assim aceito sugestões para corrigir de uma menos “alternativa”.[/quote]
Eu resolvi assim, tratando no Bean, inclusive os required. E em conjunto com Ajax nem é preciso dar refresh na página.
Funciona perfeitamente.
Estou com o mesmo problema, mas não queria resolver com a validação no bean e sim na própria página.
Já tentei com imediate=“true” e tbm com process="@this" update="@form" mas nenhum funcionou.
Se alguém souber alguma outra maneira ficarei grato.