Jsf: Limpar campos fomulários sem interferencia do validator
26 respostas
E
efcjunior
Galera,
Quando clico em Limpar, ele faz as validações dos campos obrigatórios como se fosse um botão de envio. Utilizo um validator próprio.
Utilizei algumas sugestões de colegas do forum como colocar h:commandNutton dentro de um <h:form> separado e adicionar a propriedade immediate=“true”. Com isso de fato ele não faz a validação, mas também não limpa os campos.
Põe o atributo immediate=true no botão, acredito que resolva
E
efcjunior
O colega, obrigado, mas já tentei, ele não limpa quando coloco esse atributo…
E
efcjunior
Pessoal, já tentei também colocar os botão limpar dentro de outro <h:form> porém não acontece nada ao clica-lo.
Alguém mais pode me ajudar ?
H
humberto.lima
Tenta colocar um link para essa pagina (a mesma pagina, como um reload). Eu já fiz assim…mas acho q o bean não pode ser de sessao.
[]´s
E
efcjunior
humberto.lima:
Tenta colocar um link para essa pagina (a mesma pagina, como um reload). Eu já fiz assim…mas acho q o bean não pode ser de sessao.
[]´s
Como assim um link, aonde eu colocaria esse link ?
H
humberto.lima
efcjunior:
Como assim um link, aonde eu colocaria esse link ?
Por exemplo vc esta na pagina form.xhtml, vc cria um link <h:commandLink url=‘form.jsf’> Limpar </h:commandLink>
algo assim…
S
s3v3r1n0
Amigo eu não entendi bem a sua pergunta mas você quer um botão Limpar? Um reset Html? por que se for isso já que é só pra limpar os campos mesmo põe um html dentro do formulário mesmo, ele limpa os campos sem problema.
Ou vocÊ quer alguma alteração no Backing bean? tipo resetar todas as propriedades dele? E se é isso o imediate=“true” deveria resolver.
E
efcjunior
s3v3r1n0:
Amigo eu não entendi bem a sua pergunta mas você quer um botão Limpar? Um reset Html? por que se for isso já que é só pra limpar os campos mesmo põe um html dentro do formulário mesmo, ele limpa os campos sem problema.
Ou vocÊ quer alguma alteração no Backing bean? tipo resetar todas as propriedades dele? E se é isso o imediate=“true” deveria resolver.
o cara valeu mesmo, mas é o seguinte, eu preciso de utilizar este botão limpar para resetar o beacking bean. Já utilizei o immediate, mas não limpa…
S
s3v3r1n0
Vou tentar achar a resposta aqui cara vamos ver.
E
efcjunior
Ok…Ainda continuo com o mesmo…
E
efcjunior
Pessoal, me ajudem por gentileza !!! Preciso resolver urgentemente este problema. Jà esgotei as minhas pesquisas no google, meu último recurso são vocês.
Agradeço !
R
rponte
Se o problema é somente limpar os campos do managed bean eu sempre me utilizo de uma command button como:
o padrao já nao e submit???
Cara ultima vez que fiz isso so consegui acessando os componentes de input no meo bean.
E
efcjunior
o padrao já nao e submit???
Cara ultima vez que fiz isso so consegui acessando os componentes de input no meo bean.
Como eu posso fazer esse acesso destes componentes, pode me dá um exemplo ?
E
efcjunior
já usei o submit e reset, também não funcionou…
M
muriloagu
uow :lol: fiz igual o exemplo do rponte colocou e funcionou … com um manage bean limpar campos … dai coloquei os campos que precisavam ser limpos … dai coloquei o método em uma classa abstrata e coloquei para todas as minhas classes das entidades do DAO para herdarem … e soh coloquei os campos que deveriam ser limpos em cada uma …
Que acabei criando dois forms na mesma página, me pareceu gambiarra, mas resolveu o problema, só não queria colocar em produção desta forma.
ps.: Nossa! Quando postei não tinha visto que você já havia resolvido, acabei vendo as mensagens anteriores e no desespero que estou coloquei a minha também.
De qualquer forma, do jeito que você fez não me atende pois tenho meus campos que são validados, mas…já existe outro tópico para isso.
Obrigado.
R
redthi
rponte:
Se o problema é somente limpar os campos do managed bean eu sempre me utilizo de uma command button como:
Rafael e se no caso eu tivesse que resetar um formulário muito grande acima de 100 componentes, não posso setar vazio("") nos campos(isso prejudicaria muito quando for gerar um xml, pois iria com vazio, isso não pode),
e dar new não é muito viável pois são várias classes isso prejudicaria certo ? (PS. li em alguns blog de desenvolvedores)
preciso fazer com que os campos sejam como quando inicia a aplicação,
tem alguma sugestão ?
E
edudebom
Tenho um problema semelhante que acontece quando ficam dados no validator. Se eu abrir e fechar o dialog eles reaparecem. Até eu não achar uma solução definitiva e simples estou usando document.forms[‘nomedoform’].reset(); em alguns oncomplete do meu código. Talvez ajude no seu caso.
R
rponte
Olá,
Algumas vezes simplesmente limpar os dados do managed bean e repintar o formulário não é suficiente para limpar os valores dos componentes, principalmente depois de algum erro de validação/conversão.
Algumas vezes simplesmente limpar os dados do managed bean e repintar o formulário não é suficiente para limpar os valores dos componentes, principalmente depois de algum erro de validação/conversão.
Estou com um post em draft sobre o assunto, mas me falta tempo e um pouco de coragem para finaliza-lo
Um abraço.
valeuu Rafael, funcionou aqui, ficou umas coisas para trás aqui mas resolvemos…
Fico no aguardo do seus post, são muitos bons e referência para quem está aprendendo…