Foros del Web » Programando para Internet » Javascript »

Funciona en internet explorer pero no en mozilla

Estas en el tema de Funciona en internet explorer pero no en mozilla en el foro de Javascript en Foros del Web. hola tengo un script que me va perfecto en internet explorer pero en mozilla no me funciona. el script es este: <script language="JavaScript"> function addOpt(oCntrl, ...
  #1 (permalink)  
Antiguo 10/07/2009, 11:44
 
Fecha de Ingreso: febrero-2008
Mensajes: 69
Antigüedad: 16 años, 3 meses
Puntos: 0
Funciona en internet explorer pero no en mozilla

hola tengo un script que me va perfecto en internet explorer pero en mozilla no me funciona.

el script es este:

<script language="JavaScript">

function addOpt(oCntrl, iPos, sTxt, sVal){
var selOpcion=new Option(sTxt, sVal);
eval(oCntrl.options[iPos]=selOpcion);
}

function cambia(obj,Cntrl){
var oCntrl=document.getElementById(Cntrl);
while (oCntrl.length!=0){
oCntrl.remove(0);
}
switch (obj.selectedIndex){
case 0:
addOpt(oCntrl, 0, "");
break;
case 1:
addOpt(oCntrl, 0, "Red");
addOpt(oCntrl, 1, "Blue Royal");
addOpt(oCntrl, 2, "Glitter Pink");
addOpt(oCntrl, 3, "Clear");
addOpt(oCntrl, 4, "Black");
addOpt(oCntrl, 5, "Grey");
addOpt(oCntrl, 6, "Beige");
addOpt(oCntrl, 7, "Yellow");


break;
case 2:
addOpt(oCntrl, 0, "Yellow Gold");
addOpt(oCntrl, 1, "Silver Plated");
addOpt(oCntrl, 2, "Gun Metal");


break;
case 3:
addOpt(oCntrl, 0, "Solid Silver");
addOpt(oCntrl, 1, "9ct Gold");
addOpt(oCntrl, 2, "Other");

break;
}
}
</script>


Alguna idea o recomendacion para que vaya en Mozilla?
  #2 (permalink)  
Antiguo 10/07/2009, 11:57
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Funciona en internet explorer pero no en mozilla

¿Cómo llamas a la función? Además, no entiendo por qué usas eval().
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 10/07/2009, 12:08
 
Fecha de Ingreso: febrero-2008
Mensajes: 69
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Funciona en internet explorer pero no en mozilla

No tengo mucha idea de programacion y esto es fruto de copiar y pegar y probar hasta que funciono...

Bueno este script funciona de la siguiente manera...

Tengo un formulario con una lista de dos opciones y dependiendo de que opcion escojas el campo siguiente del formulario es otra lista y te muestra las opciones dependiendo de que campo escojes en la primera lista de opciones.

me explico dos opciones una es "metalico" y la otyra "plastico" y dependiendo de cual escojas la siguiente lista de muestra las opciones para metalico o plastico, que los colores son diferentes.

lo llamo asi

<select name="material_01" onChange="cambia(this,'color_01')">


<option selected="selected"> </option>
<option>Plastic &pound;4.99</option>
<option>Metal &pound;6.99</option>
</select>


no se si se me entiende.
  #4 (permalink)  
Antiguo 10/07/2009, 12:38
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Funciona en internet explorer pero no en mozilla

El código funciona bien, siempre y cuando tengas una lista con id="color_01"
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 10/07/2009, 12:42
 
Fecha de Ingreso: febrero-2008
Mensajes: 69
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Funciona en internet explorer pero no en mozilla

Gracias David por mirar.

Si cierto y es asi la otra lista tiene ese id, el codigo funciona bien pero solo en internet explorer en mozilla no y no se en otros navegadores pues no los he provado aun pero es una put... que no vaya pues el formulario es tela de complicado y me ha llevado muchas horas y estudio hacerlo y ahora....


en fin alguna idea? deberia de funcionar en mozilla?
  #6 (permalink)  
Antiguo 10/07/2009, 12:46
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Funciona en internet explorer pero no en mozilla

Aún en Firefox y en otros navegadores funciona, como dije, siempre y cuando tengas una lista desplebable con id="color_01".
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 10/07/2009, 12:49
 
Fecha de Ingreso: febrero-2008
Mensajes: 69
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Funciona en internet explorer pero no en mozilla

Mil gracias David por mirar.

Ahora hago otra prueba limpiando todo el codigo y dejando solo lo indispensable para mirarlo pero a priori no me va con el mozilla.
  #8 (permalink)  
Antiguo 10/07/2009, 12:54
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Funciona en internet explorer pero no en mozilla

¿Estás seguro que realmente tienes un <select id="color_01">? (Porque estoy casi seguro que el problema es debido la confusión de Internet Explorer con name e id, son dos cosas diferentes)
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 10/07/2009, 12:58
 
Fecha de Ingreso: febrero-2008
Mensajes: 69
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Funciona en internet explorer pero no en mozilla

Completamente seguro, ahora estoy limpiando el resto de codigo para probar si alguna otra cosa esta interfiriendo para el mozilla, pero ya te digo con el explorer va de fabula.
  #10 (permalink)  
Antiguo 10/07/2009, 13:20
 
Fecha de Ingreso: febrero-2008
Mensajes: 69
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Funciona en internet explorer pero no en mozilla

He limpiado todo lo demas dejando solo lo esencial para hacer la prueba y No a mi no me va en Mozilla Firefox.... en explorer aun perfecto


este es el codigo total:

<!--aqui empieza el sript de activacion de campos -->

<script language="JavaScript">

function addOpt(oCntrl, iPos, sTxt, sVal){
var selOpcion=new Option(sTxt, sVal);
eval(oCntrl.options[iPos]=selOpcion);
}

function cambia(obj,Cntrl){
var oCntrl=document.getElementById(Cntrl);
while (oCntrl.length!=0){
oCntrl.remove(0);
}
switch (obj.selectedIndex){
case 0:
addOpt(oCntrl, 0, "");
break;
case 1:
addOpt(oCntrl, 0, "Pink");
addOpt(oCntrl, 1, "White");
addOpt(oCntrl, 2, "Black");
addOpt(oCntrl, 3, "Grey");
addOpt(oCntrl, 4, "Red");
addOpt(oCntrl, 5, "Yellow");
addOpt(oCntrl, 6, "Brown");
addOpt(oCntrl, 7, "Beige");
addOpt(oCntrl, 8, "Blue");


break;
case 2:
addOpt(oCntrl, 0, "Yellow Gold");
addOpt(oCntrl, 1, "Silver Plated");
addOpt(oCntrl, 2, "Gun Metal");


break;
case 3:
addOpt(oCntrl, 0, "Solid Silver");
addOpt(oCntrl, 1, "9ct Gold");
addOpt(oCntrl, 2, "Other");

break;
}
}
</script>




<!--aqui termina activacion de campos -->









<style type="text/css">
<!--
body {
background-color: #FFF;
}
-->
</style>
<table width="555" align="center">
<tr>
<td align="left">
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data" name="form" id="form">
<table border="0" cellpadding="2" cellspacing="1" class="txt_base_normal">
<tr align="center" class="txt_base_normal">
<td><div align="center"><strong>MATERIAL<br />
&quot;Choose one&quot;</strong></div></td>
<td><div align="center"><strong>COLOR<br />
&quot;Choose one&quot;</strong></div></td>
</tr>
<tr align="center">
<td align="center"><select name="material_01" onchange="cambia(this,'color_01')">
<option selected="selected"> </option>
<option>Plastic</option>
<option>Metal</option>
<option>Other</option>
</select></td>
<td align="center"><select name="color_01">
</select></td>
</tr>
<tr align="center">
<td align="center"><input type="reset" value="Clear" /></td>
<td align="center"><input type="submit" name="submit" value="Send the Form" /></td>
</tr>
</table>
</form>
</td>
</tr>
</table>



Alguna idea de porque?
  #11 (permalink)  
Antiguo 10/07/2009, 13:28
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Funciona en internet explorer pero no en mozilla

Sabía que estaba en lo correcto
Cita:
Iniciado por David Ver Mensaje
¿Estás seguro que realmente tienes un <select id="color_01">? (Porque estoy casi seguro que el problema es debido la confusión de Internet Explorer con name e id, son dos cosas diferentes)
Código:
<select name="color_01">
</select>
Debe ser:
Código html:
Ver original
  1. <select name="color_01" id="color_01">
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #12 (permalink)  
Antiguo 10/07/2009, 13:39
 
Fecha de Ingreso: febrero-2008
Mensajes: 69
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Funciona en internet explorer pero no en mozilla

ME QUITO EL SOMBRERO DAVID, CIERTO QUE LO SABIAS y yo no lo entendi supongo que debido a la ceguera que me estaba ya provocando el formulario.... y aun asi en el explorer funcionaba bien.

Y ahora esta arreglado.

MIL GRACIAS..................
  #13 (permalink)  
Antiguo 10/07/2009, 15:45
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 6 meses
Puntos: 75
Respuesta: Funciona en internet explorer pero no en mozilla

jajajaj, y la leccion de hoy es...

MUESTRA TU FORMULARIO TAMBIEN.
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:03.