Daniel Alves Posted July 19, 2012 at 02:30 PM Report #469249 Posted July 19, 2012 at 02:30 PM Boa tarde Espero estar a publicar no sitio certo. Eu tenho um pequeno código de script. A unica coisa que faz é consoante a opção que escolho numa listbox ele faz aparecer ou desaparecer outras textbox. Segue o codigo do SCRIPT: <script language="javascript"> function show(){ if(document.getElementById('tipo_despesa3').value =="Gasóleo(Cepsa)"){ document.getElementById('lbl_descriminacao').style.display = 'none'; document.getElementById('descriminacao').style.display = 'none'; document.getElementById('descriminacao').value = ''; document.getElementById('lbl_km').style.display = 'block'; document.getElementById('km').style.display = 'block'; document.getElementById('lbl_litros').style.display = 'block'; document.getElementById('litros').style.display = 'block'; } if(document.getElementById('tipo_despesa3').value =="Gasóleo"){ document.getElementById('lbl_descriminacao').style.display = 'none'; document.getElementById('descriminacao').style.display = 'none'; document.getElementById('descriminacao').value = ''; document.getElementById('lbl_km').style.display = 'block'; document.getElementById('km').style.display = 'block'; document.getElementById('lbl_litros').style.display = 'block'; document.getElementById('litros').style.display = 'block'; } if(document.getElementById('tipo_despesa3').value =="Peças/Manutenção"){ document.getElementById('lbl_descriminacao').style.display = 'block'; document.getElementById('descriminacao').style.display = 'block'; document.getElementById('lbl_km').style.display = 'none'; document.getElementById('km').style.display = 'none'; document.getElementById('km').value = ''; document.getElementById('lbl_litros').style.display = 'none'; document.getElementById('litros').style.display = 'none'; document.getElementById('litros').value = ''; } if(document.getElementById('tipo_despesa3').value =="[selecionar Opção]"){ document.getElementById('lbl_descriminacao').style.display = 'none'; document.getElementById('descriminacao').style.display = 'none'; document.getElementById('descriminacao').value = ''; document.getElementById('lbl_km').style.display = 'none'; document.getElementById('km').style.display = 'none'; document.getElementById('km').value = ''; document.getElementById('lbl_litros').style.display = 'none'; document.getElementById('litros').style.display = 'none'; document.getElementById('litros').value = ''; } } </script> E aqui o codigo da listbox: <select name="tipo_despesa3" id="tipo_despesa3" onClick="show()"> <option selected="selected">[selecionar opção]</option> <option>Gasóleo(Cepsa)</option> <option>Gasóleo</option> <option>Peças/Manutenção</option> </select> Não consigo mesmo perceber porque não funciona a sério... Já pesquisei na internet, já andei a mexer com DLLs e tudo... É complicado porque estou a programar para a empresa, e sou o unico que usa chrome... Todos os outros usam IE9. Ajuda?? =/ Muito Obrigado desde já Cumprimentos Daniel Alves
HappyHippyHippo Posted July 19, 2012 at 03:34 PM Report #469259 Posted July 19, 2012 at 03:34 PM (edited) além de o teu script parece demasiado extenso sem a necessidade de o ser (podes envolver todos os elementos dentro de um div e fazer aparece e desaparecer somente os divs, isso parece problemas de codificação, isto porque o valor das opções possuem caracteres acentuados experimenta algo do género nota a tomar nesta solucao - os id's dos divs devem corresponder ao valor da opcao do select <style type="text/css"> .choice { display: none; } /* esconde todas as opcoes ao inicio */ </style> <script type="text/javascript"> /* variavel que ira guardar o id do elemento que se encontra visivel */ var showing = ''; function show() { var select = document.getElementById('choosable'); /* verifica se a escolha e valida, isto e, nao e a primeira escolha */ if (select.value != '') { /* esconde o div que se encontra apresentado */ if (showing != '') document.getElementById(showing).style.display = 'none'; /* apresenta o div escolhido */ showing = select.value; document.getElementById(showing).style.display = 'block'; } } </script> <select id="choosable" onchange="show()"> <option value="" selected="selected">[selecionar opção]</option> <option value="choise1">Gasóleo(Cepsa)</option> <option value="choise2">Gasóleo</option> <option value="choise3">Peças/Manutenção</option> </select> <div class="choice" id="choice1"> <!-- os inputs que quiseres --> </div> <div class="choice" id="choice2"> <!-- os inputs que quiseres --> </div> <div class="choice" id="choice3"> <!-- os inputs que quiseres --> </div> Edited July 19, 2012 at 03:36 PM by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
some Posted July 26, 2012 at 04:23 PM Report #470460 Posted July 26, 2012 at 04:23 PM além de o teu script parece demasiado extenso sem a necessidade de o ser (podes envolver todos os elementos dentro de um div e fazer aparece e desaparecer somente os divs, isso parece problemas de codificação, isto porque o valor das opções possuem caracteres acentuados experimenta algo do género nota a tomar nesta solucao - os id's dos divs devem corresponder ao valor da opcao do select <style type="text/css"> .choice { display: none; } /* esconde todas as opcoes ao inicio */ </style> <script type="text/javascript"> /* variavel que ira guardar o id do elemento que se encontra visivel */ var showing = ''; function show() { var select = document.getElementById('choosable'); /* verifica se a escolha e valida, isto e, nao e a primeira escolha */ if (select.value != '') { /* esconde o div que se encontra apresentado */ if (showing != '') document.getElementById(showing).style.display = 'none'; /* apresenta o div escolhido */ showing = select.value; document.getElementById(showing).style.display = 'block'; } } </script> <select id="choosable" onchange="show()"> <option value="" selected="selected">[selecionar opção]</option> <option value="choise1">Gasóleo(Cepsa)</option> <option value="choise2">Gasóleo</option> <option value="choise3">Peças/Manutenção</option> </select> <div class="choice" id="choice1"> <!-- os inputs que quiseres --> </div> <div class="choice" id="choice2"> <!-- os inputs que quiseres --> </div> <div class="choice" id="choice3"> <!-- os inputs que quiseres --> </div> ?????????? não trabalha no meu pc 😛
HappyHippyHippo Posted July 26, 2012 at 04:56 PM Report #470463 Posted July 26, 2012 at 04:56 PM o código é um exemplo escrito de cabeça ... é suposto adaptar e testar, isto porque tem um pequeno bug: ... <option value="choise1">Gasóleo(Cepsa)</option> ... <div class="choice" id="choice1"> .. os valores das "options" não correspondem aos "id"'s das "div"'s como foi dito no post nota a tomar nesta solucao - os id's dos divs devem corresponder ao valor da opcao do select IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now