Jump to content


Má =)

Member Since 26/08/2009
Offline Last Active 28/08/2009, 16:10
-----

Posts I've Made

In Topic: [resolvido]como Determinar Os Values

28/08/2009, 13:55

Hmm, entendi...
Agora eu estou fazendo umas validações legais, tipo, se não escolheu a instância, não pode escolher o banco, e pretendo exibir uma msg de qual dado está faltando (caso não se preencha todos).

Após isso, vou ter que passar tudo isso para um script CGI, aí que quero ver.

In Topic: [resolvido]como Determinar Os Values

28/08/2009, 09:18

FUNCIONOU!!! :D
MUITO OBRIGADA! =)

Só uma coisa, eu tentei usar o isso aqui, que você havia dito:

var opcoes1 = '<option>[Escolha uma opção]</option><option value="1a">1a</option><option value="1b">1b</option>';// perceba que isso é 1 string com o conteúdo HTML do select ...elementoSelect.innerHtml = opcoes1;


Estava colocando desta maneira:

var opcoes = {
		"valor1" : '<option>1a</option><option>1b</option><option>1c</option>',
		"valor2" : '<option>2a</option><option>2b</option><option>2c</option>',
		"valor3" : '<option>3a</option><option>3b</option><option>3c</option>',
		"valor4" : '<option>4a</option><option>4b</option><option>4c</option>'
}



function bd_inst(opcao){
				 switch(opcao){
				 			  case "instance1":
										 document.getElementById('bds_inst1').innerHtml = opcoes["valor1"];
										 										 break;
							  case "instance2":
										 document.getElementById('bds_inst1').innerHtml = opcoes["valor2"];
										 										 break;
								case "instance3":
										 document.getElementById('bds_inst2').innerHtml = opcoes["valor3"];
										 										 break;
								case "instance4":
										 document.getElementById('bds_inst2').innerHtml = opcoes["valor4"];
																			 break;		 		 
				 } 
				 
}

O que haveria de errado aí?


Sou muito noob em JScript, a única coisa que a minha professora do técnico ensinou foi dar alert. ¬¬'

In Topic: [resolvido]como Determinar Os Values

27/08/2009, 16:49

Eu não sei como está o seu código agora, mas pelo que você escreveu antes, me parece que você misturou


Atualmente, está assim:

<!-- Começando do zero, AGAIN! -->

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

//var bds_inst1 = [['texto1A', 'valor1A'],['texto1B', 'valor1B'],['texto1C', 'valor1C']];
//var bds_inst2 = [['texto2A', 'valor2A'],['texto2B', 'valor2B'],['texto2C', 'valor2C']];
//var bds_inst3 = [['texto3A', 'valor3A'],['texto3B', 'valor3B'],['texto3C', 'valor3C']];
//var bds_inst4 = [['texto4A', 'valor4A'],['texto4B', 'valor4B'],['texto4C', 'valor4C']];

//var opcoes = {
//		"valor1" : '<option>1a</option><option>1b</option><option>1c</option>',
//		"valor2" : '<option>2a</option><option>2b</option><option>2c</option>',
//		"valor3" : '<option>3a</option><option>3b</option><option>3c</option>',
//		"valor4" : '<option>4a</option><option>4b</option><option>4c</option>'
//}

var bds_inst1 = [[''],['<option value="1a">1a</option>'],['<option value="1b">1b</option>'],['<option value="1c">1c</option>']];
var bds_inst2 = [[''],['<option value="2a">2a</option>'],['<option value="2b">2b</option>'],['<option value="2c">2c</option>']];
var bds_inst3 = [[''],['<option value="3a">3a</option>'],['<option value="3b">3b</option>'],['<option value="3c">3c</option>']];
var bds_inst4 = [[''],['<option value="4a">4a</option>'],['<option value="4b">4b</option>'],['<option value="4c">4c</option>']];
	

function teste(exibe){
				 alert(exibe);
}

function validaCombo(){


				 if ((document.getElementById('list_instance_1').value == '') || 
					 (document.getElementById('list_instance_2').value == '') ||
						 (document.getElementById('bd_inst1').value == '') ||
						 (document.getElementById('bd_inst2').value == '')){
						 alert("Selecione duas intâncias e dois bancos.");
						 return false;
				 } 
				 
				 else
					  frm_comp.submit();
}

function bd_inst(opcao){
				 switch(opcao){
				 			  case "instance1":
										 //document.getElementById('bds_inst1').innerHtml = opcoes["valor1"];
										 add_option('bd_inst1',bds_inst1);
										 break;
							  case "instance2":
										 //document.getElementById('bds_inst1').innerHtml = opcoes["valor2"];
										 add_option('bd_inst1',bds_inst2);
										 break;
								case "instance3":
										 //document.getElementById('bds_inst2').innerHtml = opcoes["valor3"];
										 add_option('bd_inst2',bds_inst3);
										 break;
								case "instance4":
										 //document.getElementById('bds_inst2').innerHtml = opcoes["valor4"];
										 add_option('bd_inst2',bds_inst4);
										 break;		 		 
				 } 
				 
}

function add_option(combo_name, bds){

				 				var combo = document.getElementById(combo_name);
								combo.innerHTML = "";
								
								for(var i=0; i < bds.length; i++){	
											var opt = document.createElement('option');
												opt.value = bds[i][0];
												opt.innerHTML = bds[i][1];	
												combo.appendChild(opt);	
							  }
								
}								


</script>
</head>
<body>

<form name="frm_comp" action="ok.htm" method="post">
<table border="0" align="center">
<tr>
<td width="200px" align="center">
<h4>INSTÂNCIA</h4>
<select id="list_instance_1" name="" size=1 onChange="bd_inst(this.value);" >
<option>[Selecione uma instância]</option>
<option value="instance1">Instância 1</option>
<option value="instance2">Instância 2</option>
</select>
</td>
<td width="200px" align="center">
<h4>INSTÂNCIA</h4>
<select id="list_instance_2" name="" size=1 onChange="bd_inst(this.value);">
<option>[Selecione uma instância]</option>
<option value="instance3">Instância 3</option>
<option value="instance4">Instância 4</option>
</select>
</td>
</tr>
<tr>
<td width="200px" align="center">
<h4>BANCO</h4>
<select id="bd_inst1" name="" size=1 onChange="teste(this.value);">
</select>
</td>
<td width="200px" align="center">
<h4>BANCO</h4>
<select id="bd_inst2" name="" size=1 onChange="teste(this.value);">
</select>
</td>
</tr>
</table>
<p>
<table align="center">
<tr>
<td>
<input type="button" value="Enviar" onclick="return validaCombo();">
</td>
</tr>
</table>
</form>
</body>
</html>

In Topic: [resolvido]como Determinar Os Values

27/08/2009, 16:22

Verifique o que está vindo no .value com um alert().


Fiz o seguinte:

<select id="bd_inst1" name="" size=1 onChange="teste(this.value);">
</select>

function teste(exibe){
				 alert(exibe);
}

Como resultado, está vindo <option value="X">X</option>

Mas eu queria que viesse apenas X.

Isso. Aonde você tem:

opt.value = arr_valores[i];
 opt.innerHTML = arr_valores[i];
você vai ter algo como:
opt.value = arr_valores[i][0];
 opt.innerHTML = arr_valores[i][1];



Tá faltando algo aqui né?

function add_option(combo_name, bds){

				 				var combo = document.getElementById(combo_name);
								combo.innerHTML = "";
								
								for(var i=0; i < bds.length; i++){	
											var opt = document.createElement('option');
												opt.value = bds[i][0];
												opt.innerHTML = bds[i][1];	
												combo.appendChild(opt);	
							  }
								
}




Porque todas as opções do combo aparecem como "undefined", mas pelo menos, se eu num seleciono nada, ele não dá o submit, e fala que falta algo!

Acho que estamos quase lá...

As opções que aparecem são todos "undefined"

Ele não pega o nome que tem que exibir...
Como o primeiro seria nulo --> [Selecione um valor]

Se eu pego algum "undefined" que não o primeiro, ele encara como tenho dados (que realmente há) e a validação funciona como deveria, só falta subir com esse undefined e fazer voltar os dados.

In Topic: [resolvido]como Determinar Os Values

27/08/2009, 15:15

ok, vou tentar aplicar isto aqui.

estou tentando mudar a estratégia para fazer o que preciso.

for (var i = 0; i < combinacao1.length; i++)
		 {
			 // combinacao1[i][0] = texto
			 // combinacao1[i][1] = valor
		 }

[]'s




Não entendi bem isso,
esse acesso seria feito na add_option ?

Atualmente, meu código está assim:

<!-- Começando do zero, AGAIN! -->

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

var bds_inst1 = [['<option>[Escolha uma opção]</option>'],['<option value="1a">1a</option>'],['<option value="1b">1b</option>'],['<option value="1c">1c</option>']];
var bds_inst2 = [['<option>[Escolha uma opção]</option>'],['<option value="2a">2a</option>'],['<option value="2b">2b</option>'],['<option value="2c">2c</option>']];
var bds_inst3 = [['<option>[Escolha uma opção]</option>'],['<option value="3a">3a</option>'],['<option value="3b">3b</option>'],['<option value="3c">3c</option>']];
var bds_inst4 = [['<option>[Escolha uma opção]</option>'],['<option value="4a">4a</option>'],['<option value="4b">4b</option>'],['<option value="4c">4c</option>']];
	
function validaCombo(){

				 if ((document.getElementById('list_instance_1').value == '') || 
					 (document.getElementById('list_instance_2').value == '') ||
						 (document.getElementById('bd_inst1').value == '') ||
						 (document.getElementById('bd_inst2').value == '')){
						 alert("Selecione duas intâncias e dois bancos.");
						 return false;
				 } 
}

function bd_inst(opcao){
				 switch(opcao){
				 			  case "instance1":
										 //document.getElementById('bds_inst1').innerHtml = opcoes["valor1"];
										 add_option('bd_inst1',bds_inst1);
										 break;
							  case "instance2":
										 //document.getElementById('bds_inst1').innerHtml = opcoes["valor2"];
										 add_option('bd_inst1',bds_inst2);
										 break;
								case "instance3":
										 //document.getElementById('bds_inst2').innerHtml = opcoes["valor3"];
										 add_option('bd_inst2',bds_inst3);
										 break;
								case "instance4":
										 //document.getElementById('bds_inst2').innerHtml = opcoes["valor4"];
										 add_option('bd_inst2',bds_inst4);
										 break;		 		 
				 } 
				 
}

function add_option(combo_name, bds){

var combo = document.getElementById(combo_name);
combo.innerHTML = "";
								
								for(var i=0; i< bds.length;i++){	
											var opt = document.createElement('option');
												opt.value = bds[i];
												opt.innerHTML = bds[i];	
												combo.appendChild(opt);	
							  }
								
}								


</script>
</head>
<body>

<form name="frm_comp" action="ok.htm" method="post" onSubmit="return validaCombo();">
<table border="0" align="center">
<tr>
<td width="200px" align="center">
<h4>INSTÂNCIA</h4>
<select id="list_instance_1" name="" size=1 onChange="bd_inst(this.value);" >
<option>[Selecione uma instância]</option>
<option value="instance1">Instância 1</option>
<option value="instance2">Instância 2</option>
</select>
</td>
<td width="200px" align="center">
<h4>INSTÂNCIA</h4>
<select id="list_instance_2" name="" size=1 onChange="bd_inst(this.value);">
<option>[Selecione uma instância]</option>
<option value="instance3">Instância 3</option>
<option value="instance4">Instância 4</option>
</select>
</td>
</tr>
<tr>
<td width="200px" align="center">
<h4>BANCO</h4>
<select id="bd_inst1" name="" size=1>
</select>
</td>
<td width="200px" align="center">
<h4>BANCO</h4>
<select id="bd_inst2" name="" size=1>
</select>
</td>
</tr>
</table>
<p>
<table align="center">
<tr>
<td>
<input type="submit" value="Enviar">
</td>
</tr>
</table>
</form>
</body>
</html>

Porém, a função validaCombo não exibe a msg se os dois combos de BANCO estiverem em branco. :/

O que pode estar acontecendo?

IPB Skin By Virteq