Foros del Web » Programando para Internet » Javascript »

Funcion que va en Firefox y no en explorer

Estas en el tema de Funcion que va en Firefox y no en explorer en el foro de Javascript en Foros del Web. Hola He creado dos funciones Selecciona que pone checked un checkbox al seleccionar su "Select" correpondiente y Vacia que al elegir el valor "-" en ...
  #1 (permalink)  
Antiguo 17/10/2006, 03:35
Avatar de Lord of freaks  
Fecha de Ingreso: octubre-2004
Ubicación: Madrid
Mensajes: 334
Antigüedad: 19 años, 7 meses
Puntos: 2
Funcion que va en Firefox y no en explorer

Hola

He creado dos funciones Selecciona que pone checked un checkbox al seleccionar su "Select" correpondiente y Vacia que al elegir el valor "-" en el "Select" desactiva el checkbox correspondiente, pero funciona bien en firefox y no en Explorer me podeis ayudar.

Os dejo las funciones para ver si me podeis ayudar creo que la que falla es vacía.

Código PHP:

function selecciona(id){

    
numero "chk"+id.toString();

    if(
document.getElementById(id).value == '-'document.getElementById(numero).checked 0;
    else 
document.getElementById(numero).checked 1;
}

function 
vacia(id) {
numero "chk"+id.toString();
if (
document.getElementById(numero).checked == 0document.getElementById(id).value '-';

Un saludo
__________________
Una vez un elemental de rayos mató una tribu entera de tritones.

¡¡ El sólo quería darse un baño !!

http://www.frikilandia.com

Neither Fu Nor Fa
  #2 (permalink)  
Antiguo 17/10/2006, 03:47
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Hola:

Prueba poniendo true/false en vez de 1/0 en las asignaciones a los atributos checked de los elementos... se supone que son valores booleanos.
Y el if de vacía:

if (!document.getElementById(numero).checked) ...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 17/10/2006, 07:31
Avatar de Lord of freaks  
Fecha de Ingreso: octubre-2004
Ubicación: Madrid
Mensajes: 334
Antigüedad: 19 años, 7 meses
Puntos: 2
Hola de nuevo

Gracias Caricatos por la aclaración pero sigue sin funcionar en IE 6, dejo las funciones modificadas a ver si conseguimos dar con lo que es.

Código PHP:
function selecciona(id){

    
numero "chk"+id.toString();

    if(
document.getElementById(id).value == '-'document.getElementById(numero).checked false;
    else 
document.getElementById(numero).checked true;
}

function 
vacia(id){
    
numero "chk" id.toString();
    if(!
document.getElementById(numero).checkeddocument.getElementById(id).value '-';

Dejo el HTML por si acaso

Código PHP:

<label>
<
input id="chk1" type="checkbox" name="categoria[]" value="1"  onChange="javascript:vacia(1)" />
Lo que sea
</label>
<
select id="1" name="experiencia[]" onChange="javascript:selecciona(1)">
<
option value="-" />
<
option value="unos" />
<
option value="otros" />
</
select
Un saludo y gracias
__________________
Una vez un elemental de rayos mató una tribu entera de tritones.

¡¡ El sólo quería darse un baño !!

http://www.frikilandia.com

Neither Fu Nor Fa

Última edición por Lord of freaks; 17/10/2006 a las 09:51
  #4 (permalink)  
Antiguo 17/10/2006, 11:07
Avatar de Lord of freaks  
Fecha de Ingreso: octubre-2004
Ubicación: Madrid
Mensajes: 334
Antigüedad: 19 años, 7 meses
Puntos: 2
Alguna idea es que estoy bloqueado ahora mismo

Gracias
__________________
Una vez un elemental de rayos mató una tribu entera de tritones.

¡¡ El sólo quería darse un baño !!

http://www.frikilandia.com

Neither Fu Nor Fa
  #5 (permalink)  
Antiguo 17/10/2006, 16:11
 
Fecha de Ingreso: octubre-2006
Mensajes: 24
Antigüedad: 17 años, 7 meses
Puntos: 0
Cita:
Iniciado por Lord of freaks Ver Mensaje
Alguna idea es que estoy bloqueado ahora mismo

Gracias
La funcion no tiene nada de malo, no la modifques, lo que hay que cambiar es la forma en la que la llamas en IE. IE no te acepta eventos como los demás navegadores, yo tuve ese mismo problema con un evento onclick y se soluciona llamando la funcion asi:
Código:
<input type="x" evento="window.funcion()" value="x" >
  #6 (permalink)  
Antiguo 17/10/2006, 16:12
 
Fecha de Ingreso: octubre-2006
Mensajes: 24
Antigüedad: 17 años, 7 meses
Puntos: 0
Cita:
Iniciado por Lord of freaks Ver Mensaje
Alguna idea es que estoy bloqueado ahora mismo

Gracias
La funcion no tiene nada de malo, no la modifques, lo que hay que cambiar es la forma en la que la llamas en IE. IE no te acepta eventos como los demás navegadores, yo tuve ese mismo problema con un evento onclick y se soluciona llamando la funcion asi:
Código:
<input type="x" onclick o lo que sea="window.funcion()" value="x" >
  #7 (permalink)  
Antiguo 18/10/2006, 01:37
Avatar de Lord of freaks  
Fecha de Ingreso: octubre-2004
Ubicación: Madrid
Mensajes: 334
Antigüedad: 19 años, 7 meses
Puntos: 2
Muchas gracias a todos ya funciona:

Además de los cambios que propusieron Caricatos y Zero01 sobre la sintaxis de la función y la forma de llamarla, el cambio clave fue:

En IE, los checkbox no responden al evento onChange por lo que cambiandolo a onClick la funcion vacia() pasó a funcionar perfectamente tanto en IE como en Firefox

Gracias por todo como siempre sois unos cracks salvaculos
__________________
Una vez un elemental de rayos mató una tribu entera de tritones.

¡¡ El sólo quería darse un baño !!

http://www.frikilandia.com

Neither Fu Nor Fa
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 13:15.