Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Júlio Torres

Substituir nome de função com Array

Recommended Posts

Pessoal tenho as funções q são idênticas:

 

function referencias1(selObj){  if((selObj.options[selObj.selectedIndex].value == "090")||(selObj.options[selObj.selectedIndex].value == "100")){	document.all.ref_1a.style.visibility = "hidden";	document.all.ref_1b.style.visibility = "visible";  }  if(selObj.options[selObj.selectedIndex].value == "080"){	document.all.ref_1a.style.visibility = "visible";	document.all.ref_1b.style.visibility = "hidden";  }  if (selObj.options[selObj.selectedIndex].value == ""){	document.all.ref_1a.style.visibility = "hidden";	document.all.ref_1b.style.visibility = "hidden";  } }function referencias2(selObj){  if((selObj.options[selObj.selectedIndex].value == "090")||(selObj.options[selObj.selectedIndex].value == "100")){	document.all.ref_2a.style.visibility = "hidden";	document.all.ref_2b.style.visibility = "visible";  }  if(selObj.options[selObj.selectedIndex].value == "080"){	document.all.ref_2a.style.visibility = "visible";	document.all.ref_2b.style.visibility = "hidden";  }  if (selObj.options[selObj.selectedIndex].value == ""){	document.all.ref_2a.style.visibility = "hidden";	document.all.ref_2b.style.visibility = "hidden";  } }function referencias3(selObj){  if((selObj.options[selObj.selectedIndex].value == "090")||(selObj.options[selObj.selectedIndex].value == "100")){	document.all.ref_3a.style.visibility = "hidden";	document.all.ref_3b.style.visibility = "visible";  }  if(selObj.options[selObj.selectedIndex].value == "080"){	document.all.ref_3a.style.visibility = "visible";	document.all.ref_3b.style.visibility = "hidden";  }  if (selObj.options[selObj.selectedIndex].value == ""){	document.all.ref_3a.style.visibility = "hidden";	document.all.ref_3b.style.visibility = "hidden";  } }....function referencias15(selObj){  if((selObj.options[selObj.selectedIndex].value == "090")||(selObj.options[selObj.selectedIndex].value == "100")){	document.all.ref_15a.style.visibility = "hidden";	document.all.ref_15b.style.visibility = "visible";  }  if(selObj.options[selObj.selectedIndex].value == "080"){	document.all.ref_15a.style.visibility = "visible";	document.all.ref_15b.style.visibility = "hidden";  }  if (selObj.options[selObj.selectedIndex].value == ""){	document.all.ref_15a.style.visibility = "hidden";	document.all.ref_15b.style.visibility = "hidden";  } }

Eu preciso criar uma array para substituir os nomes das funçoes e os números das referencias.

 

Eu fiz uma assim:

 

var refs = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15')for(r=0;r<refs.lenght;r++){function referencia+refs[r](selObj){  if((selObj.options[selObj.selectedIndex].value == "090")||(selObj.options[selObj.selectedIndex].value == "100")){	document.all.ref_+refs[r]+a.style.visibility = "hidden";	document.all.ref_+refs[r]+b.style.visibility = "visible";  }  if(selObj.options[selObj.selectedIndex].value == "080"){	document.all.ref_+refs[r]+a.style.visibility = "visible";	document.all.ref_+refs[r]+b.style.visibility = "hidden";  }  if (selObj.options[selObj.selectedIndex].value == ""){	document.all.ref_+refs[r]+a.style.visibility = "hidden";	document.all.ref_+refs[r]+b.style.visibility = "hidden";  } }}

mas não tá funcionando. O q está errado?

 

Alguém poderia me ajudar?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se vai funcionar mas tenta isso:

 

for(r=1; r<15; r++){  eval('function referencia'+r+'(selObj){ if((selObj.options[selObj.selectedIndex].value == "090")||(selObj.options[selObj.selectedIndex].value == "100")){ document.all.referencia'+r+'a.style.visibility = "hidden"; document.all.referencia'+r+'b.style.visibility = "visible"; } if(selObj.options[selObj.selectedIndex].value == "080"){ document.all.referencia'+r+'a.style.visibility = "visible"; document.all.referencia'+r+'b.style.visibility = "hidden"; } if (selObj.options[selObj.selectedIndex].value == ""){ document.all.referencia'+r+'a.style.visibility = "hidden"; document.all.referencia'+r+'b.style.visibility = "hidden"; }});}

O que eu fiz foi fazer com que o comando eval execute a string que eu passei pra ela e colocar o este comando dentro de um loop. A variavel r é o seu indice agora.

Se funcionar, me fala pois é a primeira vez q uso o eval.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.