Mostrar/ocultar campo com JavaScript

10 respostas
fnandos

Oi pessoal, eu me deparei com um problema, eu tenho um select com duas opções, e quando eu seleciona uma delas o formulário deveria exibir um campo que so aparece se essa opção está selecionada.

<tr>
        <td class="tdLabel">Frete pago por:</td><td><s:select id="frete" name="budget.frete" list="#{'FOB':'FOB','CIF':'CIF'}" onchange="show()" /></td>            
        </tr> 
        <tr>
            <td class="tdLabel" style="display:none;" id="label">Valor Deslocamento:</td><td style="display:none;" id="campo"><s:textfield name="budget.valorDeslocamento"  value="%{budget.valorDeslocamento}" cssClass="campoPequeno campoNumerico" /></td>
        </tr>

Minha função javaScript, se CIF estiver selecionado:

function show(){
        if(document.getElementById('frete').value =="CIF"){
            document.getElementById('label').style.display = 'block';
            document.getElementById('campo').style.display = 'block';
        }else{
            document.getElementById('label').style.display = 'none';
            document.getElementById('campo').style.display = 'none';
        }
    }

Funciona, mais ele não alinha os campos no formulario, aparece fora do luguar e tal, vira uma “vcs sabem”, se alguem tiver alguma dica eu testo.

10 Respostas

xandevieira

ja tentou colocar os campos entre?

fnandos

Esta entre table e /table, pois é uma tabela.

nandolup

Fala queridao…

tenta em vez de “block”, coloca “inline”

espero ter ajudado.

fnandos

Cara, não adiantou, continua com problema.

nandolup

fala cara entao coloca esse id onde vc da o display block na TR e não na TD…

espero ter ajudado

fnandos

também já tinha feito isso, não muda nada e soma outro problema, ele fica dando espaço na vertical cada vez que eu clico mudo a opção do select.

nandolup

Então isso é problema de CSS…

ai tem que ver com mais detalhe o que esta acontecendo, pode ser algum componente que esta com float
e ai segue uma linha muito ampla de problemas de layout.

fnandos

Valeu a ajuda cara, vou ver o que eu faço aqui. Sucesso.

nandolup

Pode ser problema tbm pq a tabela vai criar uma td primeiro e depois tem criar outra,
então pega os dois Label e o Campo e coloca na mesma TD

se nao for isso, é no css.

fnandos

Mudei o esquema, ao inves de mostrar/ocultar o campo ele habilita/desabilita, funcionou e ficou show de bola.

Criado 29 de agosto de 2008
Ultima resposta 29 de ago. de 2008
Respostas 10
Participantes 3