Foros del Web » Programando para Internet » Javascript »

MUY complicado. Script no funciona en firefox.

Estas en el tema de MUY complicado. Script no funciona en firefox. en el foro de Javascript en Foros del Web. Os comento, este script no funciona con firefox, solo con explorer y mis conociemientos de javascript son muy bajos ya que este codigo me ayudaron ...
  #1 (permalink)  
Antiguo 29/05/2007, 11:31
 
Fecha de Ingreso: enero-2007
Mensajes: 43
Antigüedad: 17 años, 3 meses
Puntos: 0
MUY complicado. Script no funciona en firefox.

Os comento, este script no funciona con firefox, solo con explorer y mis conociemientos de javascript son muy bajos ya que este codigo me ayudaron a desarrollarlo (un compañero de este foro). Pongo el script.

Código:
 <script language="JavaScript" type="text/javascript">    

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

   function cambia(oCntrl,valor){
   
    while (oCntrl.length) oCntrl.remove(0);
    {
           
           var selObj = document.getElementById('ta');
           var selIndex = selObj.selectedIndex;
           var esta = selObj.options[selIndex].text
           var txtTextObj = document.getElementById('txtText');
           txtTextObj.value = selObj.options[selIndex].text;
           
           if (valor ==0)
           {
            addOpt(oCntrl,  0, "AGOTADO.............................", "0");       
           }
           else if (valor >=5)
           {
            addOpt(oCntrl,  0, "Seleccione la Cantidad..........", "0");       
            addOpt(oCntrl,  1, "1", "1");
            addOpt(oCntrl,  2, "2", "2"); 
            addOpt(oCntrl,  3, "3", "3");
            addOpt(oCntrl,  4, "4", "4");    
            addOpt(oCntrl,  5, "5", "5");    
           }
           else
           {
             addOpt(oCntrl,  0, "Seleccione la Cantidad..........", "0");
             var i=1;
             while (valor !=0) {
             
             addOpt(oCntrl,  i, i, i); 
             i = i + 1;
             valor = valor - 1;
             }  
           }
    
   }
    
   }
  </script>
Es muy sencillo pero no se porque no funciona en firefox. Hay un combo que en el OnClick, llama a la funcion cambia para rellenar otro como Q1. Pero con firefox ese combo sale vacio y con IE sale bien.

Gracias.
  #2 (permalink)  
Antiguo 30/05/2007, 02:04
 
Fecha de Ingreso: enero-2007
Mensajes: 43
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: MUY complicado. Script no funciona en firefox.

al parecer el error esta en esta linea de codigo

eval(oCntrl.options[iPos]=selOpcion);

Alguien sabria sustituirla.
  #3 (permalink)  
Antiguo 30/05/2007, 02:14
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: MUY complicado. Script no funciona en firefox.

Hola:

Habría que ver como haces la llamada... explorer permite referenciar a los tags directamente por su id, en cambio no es correcto hacerlo así; debería usarse document.getElementById... y el eval parece ser innecesario.

Para evitar poner esa línea tan larga yo suelo usar un método intermedio que llamo tag:

function tag(id) {
return getElementById(id);
}

y si atiné en el error, se arreglaría así:
tag(oCntrl).options[iPos]=selOpcion;

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 31/05/2007, 06:26
 
Fecha de Ingreso: enero-2007
Mensajes: 43
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: MUY complicado. Script no funciona en firefox.

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

Habría que ver como haces la llamada... explorer permite referenciar a los tags directamente por su id, en cambio no es correcto hacerlo así; debería usarse document.getElementById... y el eval parece ser innecesario.

Para evitar poner esa línea tan larga yo suelo usar un método intermedio que llamo tag:

function tag(id) {
return getElementById(id);
}

y si atiné en el error, se arreglaría así:
tag(oCntrl).options[iPos]=selOpcion;

Saludos

Me da error :(. Gracias de todos modos, hay alguna otra solución?
  #5 (permalink)  
Antiguo 31/05/2007, 07:25
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: MUY complicado. Script no funciona en firefox.

Cita:
Iniciado por TomasART Ver Mensaje
Me da error :(. Gracias de todos modos, hay alguna otra solución?
Te he puesto literalmente:
Código:
Habría que ver como haces la llamada...
Debes facilitarnos todos los datos posibles si quieres que te ayudemos con más tino

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 31/05/2007, 08:19
 
Fecha de Ingreso: enero-2007
Mensajes: 43
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: MUY complicado. Script no funciona en firefox.

Gracias por tu interes. :). En serio lo agradezco.

Esta es la llamada a lo que he puesto en mi pregunta.
Código:
$combo = "<select name=\"ta\" class=\"imputbportada\" onChange=\"cambia(document.formComprar2.Q1,this.value)\">\n";
Y aqui es donde esta el combo que se rellena.

[coce]

?>

<select name="Q1" class="imputbportada">
<option value="Aux">Seleccione la Cantidad..........</option>
</select>

<?php

[/code]
  #7 (permalink)  
Antiguo 01/06/2007, 03:10
 
Fecha de Ingreso: enero-2007
Mensajes: 43
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: MUY complicado. Script no funciona en firefox.

Cita:
Iniciado por TomasART Ver Mensaje
Gracias por tu interes. :). En serio lo agradezco.

Esta es la llamada a lo que he puesto en mi pregunta.
Código:
$combo = "<select name=\"ta\" class=\"imputbportada\" onChange=\"cambia(document.formComprar2.Q1,this.value)\">\n";
Y aqui es donde esta el combo que se rellena.

[coce]

?>

<select name="Q1" class="imputbportada">
<option value="Aux">Seleccione la Cantidad..........</option>
</select>

<?php

[/code]

nadie?
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 07:30.