Jump to content


Photo

Erro Na Validação De Combos


  • Faça o login para participar
3 replies to this topic

#1 Má =)

Má =)

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Feminino

Posted 26/08/2009, 16:39

O que está errado neste código??

OBS: O combo de banco foi criado durante o evento onChange do combo de instância.

<html>
<head>
<script>

function instance_1(option1) {
								 var list_db1 = document.getElementById(option1)
												 if(document.form_comp_bd.list_instance1.value == option1){
												 document.getElementById('db_instance1').innerHTML = list_db1.innerHTML
												 }
}


function OraCompDataCheck() {
  
	var i;
  var inst1 = false;
  var inst2 = false;
	

  for (i = 1; i < document.form_comp_bd.list_instance1.options.length; i++){
	  if (document.form_comp_bd.list_instance1.options[i].selected == true) {
		  inst1 = true;
		  break;
	   }
  }

  for (i = 1; i < document.form_comp_bd.list_instance2.options.length; i++){
	   if (document.form_comp_bd.list_instance2.options[i].selected == true) {
		   inst2 = true;
		   break;
	   }
  }

	
	
	if ( ! (inst1 && inst2) ) {
	 alert ('Escolha duas intâncias para a comparação.');
	 return false;
  }

}
</script>

</head>
<body>

<h3><center>Comparação entre Bancos</center></h3>
<form name='form_comp_bd' action='ok.htm' method='post' onSubmit='return OraCompDataCheck()'>
<table align=center border=0>
<tr>
<td style="width:275px" align=center><b>INSTÂNCIA</b></td>
<td style="width:275px" align=center><b>INSTÂNCIA</b></td>
</tr>
<tr>
<td align="center" position=absolute>

<select name="list_instance1" style='width: 135pt' onChange="instance_1(this.value);">
<option value="">[Selecione uma instância]</option>
<option value="mamute10i1">mamute10i1</option>
<option value="condor10g2">condor10g2</option>
</select>

</td>
<td align="center">

<select name="list_instance2" style='width: 135pt'>
<option value="">[Selecione uma instância]</option>
<option value="dorado10i2">mamute10i1</option>
<option value="mamute10i2">condor10g2</option>
</select>

</td>
</tr>
</table>


<div id="mamute10i1" style="display:none;">
<option>[Selecione um banco]</option>
<option value="1">Instância 1 - BD 1</option>
<option value="2">Instância 1 - BD 2</option>
<option value="3">Instância 1 - BD 3</option>
<option value="4">Instância 1 - BD 4</option>
</div>

<div id="condor10g2" style="display:none;">
<option>[Selecione um banco]</option>
<option value="1">Instância 2 - BD 1</option>
<option value="2">Instância 2 - BD 2</option>
<option value="3">Instância 2 - BD 3</option>
<option value="4">Instância 2 - BD 4</option>
</div>


<table align=center border=0>
<tr>
<td style="width:275px" align=center><b>BANCO</b></td>
<td style="width:275px" align=center><b>BANCO</b></td>
</tr>
<tr>
<td align="center" position=absolute>

<select name='database1' size=3 style='width: 150pt'>
<div id="db_instance1"></div> 
</select>

</td>
<td align="center">

<select name='database2' size=3 style='width: 150pt'>

</select>

</td>
</tr>
</table>

<table align=center>
<tr>
<td>
<input type='submit' value='Enviar'>
</td>
</tr>
</table>

</form>
</body>
</html>

Quando escolho um itempara o primeiro combo INSTANCIA, ele deveria carregar o combo BANCO abaixo, mas dá este erro:

Linha: 8
Erro: 'document.getElementById(...)' é nulo ou não é um objeto

A linha 8 é : document.getElementById('db_instance1').innerHTML = list_db1.innerHTML


O que pode estar errado?!
"E não há porque morrer um pouco por dia, deixar perder o sorriso em meio a tanta agonia..."

#2 nvivo

nvivo
  • Visitantes

Posted 26/08/2009, 16:56

<span class="postcolor"><select name='database1' size=3 style='width: 150pt'>
 <div id="db_instance1"></div> 
 </select></span>

O que está errado neste código??


Você está criando o div "db_instance" dentro de um <select>. Isso vai desaparecer na hora do browser gerar o DOM, já que dentro de <select> não vai <div>.

Dê uma analisada melhor no HTML que você está gerando, veja se não tem tags abrindo e fechando no lugar errado.

[]'s

#3 Má =)

Má =)

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Feminino

Posted 26/08/2009, 17:00

Mas então, como eu poderia gerar os combos secundários?

Eu havia feito desta maneira:

<html>

<head>
<title>Comparação de bancos</title>
</head>

<script>

function instance_1(option1) {
								 var list_db1 = document.getElementById(option1)
												 if(document.form_comp_bd.list_instance1.value == option1){
												 document.getElementById('db_instance1').innerHTML = list_db1.innerHTML
												 }
}

function instance_2(option2) {
								 var list_db2 = document.getElementById(option2)
												 if(document.form_comp_bd.list_instance2.value == option2){
												 document.getElementById('db_instance2').innerHTML = list_db2.innerHTML
												 }
}

function OraCompDataCheck() {

  var i;
  var inst1 = false;
  var inst2 = false;
	
  for (i = 1; i < document.form_comp_bd.list_instance1.options.length; i++){
	  if (document.form_comp_bd.list_instance1.options[i].selected == true) {
		  inst1 = true;
		  break;
	   }
  }

  for (i = 1; i < document.form_comp_bd.list_instance2.options.length; i++){
	   if (document.form_comp_bd.list_instance2.options[i].selected == true) {
		   inst2 = true;
		   break;
	   }
  }

	
	
	if ( ! (inst1 && inst2) ) {
	 alert ('Escolha duas intâncias para a comparação.');
	 return false;
  }

}	


</script> 

<h3 align="center">Comparação de bancos</h3>

<form name="form_comp_bd" action="ok.htm" method="post" onSubmit="return OraCompDataCheck()">

<table border="0" align="center">
<tr>
<td width="200px" align="center">

<h4>INSTÂNCIA</h4>
<select name="list_instance1" size=1 onChange="instance_1(this.value);" >
<option>[Selecione uma instância]</option>
<option value="instance1">Instância 1</option>
<option value="instance2">Instância 2</option>
</select>

<div id="instance1" style="display:none;">
<h4>BANCO</h4>
<select name="list_db_instance1">
<option>[Selecione um banco]</option>
<option value="1">Instância 1 - BD 1</option>
<option value="2">Instância 1 - BD 2</option>
<option value="3">Instância 1 - BD 3</option>
<option value="4">Instância 1 - BD 4</option>
</select>

</div>

<div id="instance2" style="display:none;">
<h4>BANCO</h4>
<select name="list_db_instance2">
<option>[Selecione um banco]</option>
<option value="1">Instância 2 - BD 1</option>
<option value="2">Instância 2 - BD 2</option>
<option value="3">Instância 2 - BD 3</option>
<option value="4">Instância 2 - BD 4</option>
</select>

</div>

</td>

<td width="200px" align="center">

<h4>INSTÂNCIA</h4>
<select name="list_instance2" size=1 onChange="instance_2(this.value);">
<option>[Selecione uma instância]</option>
<option value="instance3">Instância 3</option>
<option value="instance4">Instância 4</option>
</select>

<div id="instance3" style="display:none;">
<h4>BANCO</h4>
<select name="list_db_instance3">
<option>[Selecione um banco]</option>
<option value="1">Instância 3 - BD 1</option>
<option value="2">Instância 3 - BD 2</option>
<option value="3">Instância 3 - BD 3</option>
<option value="4">Instância 3 - BD 4</option>
</select>

</div>

<div id="instance4" style="display:none;">
<h4>BANCO</h4>
<select name="list_db_instance4">
<option>[Selecione um banco]</option>
<option value="1">Instância 4 - BD 1</option>
<option value="2">Instância 4 - BD 2</option>
<option value="3">Instância 4 - BD 3</option>
<option value="4">Instância 4 - BD 4</option>
</select>

</div>

</td>

</tr>

<tr>
<td width="200px" align="center"><div id="db_instance1"></div></td>
<td width="200px" align="center"><div id="db_instance2"></div></td>
</tr>

</table>
<p>
<table align="center">
<tr>
<td>
<input type="submit" value="Enviar">
</td>
</tr>
</table>

</form>

</html>


Mas quando eu ia validar os combos gerados, não validava, dava erro.
(Só estou fazendo a verificação dos combos primários neste código)
"E não há porque morrer um pouco por dia, deixar perder o sorriso em meio a tanta agonia..."

#4 nvivo

nvivo
  • Visitantes

Posted 26/08/2009, 17:11

Mas então, como eu poderia gerar os combos secundários?


Respondido no outro post.

[]'s




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq