Estou tendo problemas em limpar os dados do meu form, estou utilizando JSF, já tentei usar a tag h:commandButton com o atributo type=reset, e o atributo action=reset, mas nenhuma das 2 maneiras funcionaram, elas limpas os dados novos em um inputText, porem voltam com os dados antigos, ou seja, seo form com carregado com um campo contendo um valor x, e esse valor e apagado e colocado um valor y, qdo clicado no botão limpar, ele retorna pra x, e não para vazio, já tentei um metodo limpar no MB, e mesmo assim continua a problema, os MB estão no scope request.
Cara, creio que essa propriedade apenas torna o botão um input “reset” normal do HTML. E o reset não apaga coisas dos inputs, ele retorna ao estado original de como foi renderizado. Tipo, se coloco um atributo “bira” no “value” de um html que eu defini, então ao renderizar no navegador e apagar esse texto e depois apertar reset, o nome “bira” aparece novamente.
O melhor seria criar um método recursivo no seu managed bean que apague todos os inputs que o JSF renderiza.
Pesquisei no Google é não achei nada que me ajudasse, então resolvi esse problema usando jQuery da seguinte forma:
<script type="text/javascript">
function limpar(){
$("#cadastro input[type=text]").each(function() {//"#cadastro" é o "id" do meu <h:form>
$(this).val("");
});
}
</script>
Se você limpar os dados no seu ManagedBean e renderizar a tela, ao validar a EL os campos deveriam vir com o valor novo, a não ser que a sua árvore d e compontentes esteja suja, se for o caso, sugiro que leia o link abaixo.
Estou usando o atributo “immediate=“true””, pelo que percebi não existe submit, por isso que dar um new em seu Bean e um update em seu form não funciona. Usando o @RequestScoped.