(Resolvido)limpar o resultado da consulta e os campos do formulário com JSF
20 respostas
E
efcjunior
Bem pessoal, tenho uma pagina jsf que realiza a consulta e exibe os dados na própria tela. Da maneira abaixo, eu consigo limpar somente o resultado da consulta, mas eu preciso também de limpar os campos do formulário
Alguém pode me dar uma idéia de como resolver este problema .
nesse teu botao:
<h:commandButton
value="#{Message[‘msg.limpar’]}"
action="#{cnsTrnFinFormBean.limpar}"
immediate=“true”/>
crie um metodo tipo
public void limpar(){
this.setNome(null);
}
fui
L
lmuci
nesse teu botao:
<h:commandButton
value="#{Message[‘msg.limpar’]}"
action="#{cnsTrnFinFormBean.limpar}"
immediate=“true”/>
crie um metodo tipo
public void limpar(){
this.setNome(null);
}
fui
E
efcjunior
1-Felipe e colega entendi a sugestão abaixo do colega como também a implementei. Porém com esta eu consigo limpar os campos antes de realizar a consulta, porque após realiza-la, eu clico no botão limpar e não acontece nada.
2- A sugestão do colega de setar null para os campos já existe. Acontece com esta soluçaõ eu consigo apenas limpar a tabela pesquisa agora os campos do formulário não
Se alguém puder contribuir eu agradeço.
E
efcjunior
Tentei fazer assim, mas acontece o seguinte: Antes da pesquisa limpar o formulário se o digitar qualquer coisa, mas
após a consulta, quando clico em limpar ele retira a tabela pesquisa mas não reseta o formulário.
R
renatocustodio
efcjunior
O caso é que o reset em um formulário html não é para limpar os campos e sim para fazer com que eles voltem ao seu valor inicial, que estava no value do html.
Da primeira vez limpa porque não havia nada. Mas da segunda não limpa porque a página já foi carrega com dados no value. Experimente alterar algum campo e resetar e vc verá que ele retorna para o que estava quando a página foi carregada.
Uma solução seria criar uma função javascript chamada limparCampos() por exemplo que sai pegando todos os inputs e setando ‘’ no value…
Pode fazer dentro de um for nos itens do formulário ou setando individualmente, se for o caso…
E
efcjunior
renatocustodio:
efcjunior
O caso é que o reset em um formulário html não é para limpar os campos e sim para fazer com que eles voltem ao seu valor inicial, que estava no value do html.
Da primeira vez limpa porque não havia nada. Mas da segunda não limpa porque a página já foi carrega com dados no value. Experimente alterar algum campo e resetar e vc verá que ele retorna para o que estava quando a página foi carregada.
Uma solução seria criar uma função javascript chamada limparCampos() por exemplo que sai pegando todos os inputs e setando ‘’ no value…
Pode fazer dentro de um for nos itens do formulário ou setando individualmente, se for o caso…
Renato, faz muito sentido o que você falou…É possível me dar um exemplo de como eu implemento esta função, você já tem essa função ?
Obrigado.
E
efcjunior
Só lembrando que o meu form é implementado em jsf, não sei se é possível setar valores…
R
renatocustodio
Bom, para fazer de forma automática deve ser fácil, e se pesquisar sobre uma função javascript prota deve achar aos montes na internet…
E assim com todos os seus outros campos. Não sei de cabeça como se faz com javascript para ir pegando todos e setando uma string vazia automatica. Experimenta dar um “for in” pra ver. Ou procure uma pronta.
R
renatocustodio
Seja ele jsf ou não, no final ele vai gerar html nu e crú. E é isso que o javascript enxerga.
E
efcjunior
Seja ele jsf ou não, no final ele vai gerar html nu e crú. E é isso que o javascript enxerga.
Legal,mas eu tenho mais um problema eu tenho dois campos datas que são sempre reinicializado com a data atual…Como setaria esta atual ?
R
renatocustodio
Bom, tem duas opções:
Setar lá dentro a dataAtual com javascript, pegando dessa forma a data da máquina do client.
Ou quando carregar a página jogar a dataAtual dentro de um campo hidden usando programação java mesmo, que pode er colado usando alguma tag de data, jstl, scriptles,etc… Então na função que reseta pegar com javascript essa valor e simplesmente jogar nesse campo.
E
efcjunior
renatocustodio:
Bom, tem duas opções:
Setar lá dentro a dataAtual com javascript, pegando dessa forma a data da máquina do client.
Ou quando carregar a página jogar a dataAtual dentro de um campo hidden usando programação java mesmo, que pode er colado usando alguma tag de data, jstl, scriptles,etc… Então na função que reseta pegar com javascript essa valor e simplesmente jogar nesse campo.
Cara não funcionou, os campos continuaram com os mesmos valores.
R
renatocustodio
tem certeza que é mesmo ptaOrigem e terminal os IDs gerados no html?
Qual erro que apareceu no navegador ao executar o javascript?
R
renatocustodio
Outra coisa, nesse caso não precisa passar parametro nenhum para a função, porque não ta usando ele lá dentro mesmo.(mas não é isso que atrapalou, só que tbm não vai ajudar)