Jump to content
Daniel Alves

Javascript funciona no chrome mas não no IE9

Recommended Posts

Daniel Alves

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

Share this post


Link to post
Share on other sites
HappyHippyHippo

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 by HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
some

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 :P

Share this post


Link to post
Share on other sites
HappyHippyHippo

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.