Foros del Web » Programando para Internet » Javascript »

Problema con el optgroup y onChange

Estas en el tema de Problema con el optgroup y onChange en el foro de Javascript en Foros del Web. Hola: A ver, os cuento mi problema por si le ha pasado a alguien y sabe como solucionarlo. Resulta que yo cargo un combo con ...
  #1 (permalink)  
Antiguo 08/04/2005, 01:31
 
Fecha de Ingreso: octubre-2004
Mensajes: 104
Antigüedad: 19 años, 6 meses
Puntos: 0
Problema con el optgroup y onChange

Hola:

A ver, os cuento mi problema por si le ha pasado a alguien y sabe como solucionarlo.

Resulta que yo cargo un combo con ASP (lo pongo en el foro de javascript porque no tiene nada que ver con el ASP). Ese combo tiene grupos (optgroup), y en el onChange de la etiqueta select tengo puesto que ejecute una función de javascript.

El caso es que al pasar de un option a otro, dentro del mismo optgroup, si se lanza la función javascript; pero cuando paso de un option de un optgroup a otro option de otro optgroup no salta la función (se que parece un poco trabalenguas, espero que se entienda).

Lo mas gracioso es que si elijo la option con el raton, si que salta la funcion siempre, el problema viene al hacerlo con el teclado (subir y bajar con las flechas).

Gracias de antemano
  #2 (permalink)  
Antiguo 09/04/2005, 04:24
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
He hecho un ejemplo tonto para probar lo que dices y a mi me saltan bien... Dime en qué se diferencia (a parte del contenido, obviamente. Porque como tu página sea como mi ejemplo apaga y vámonos!) tu página de mi ejemplo:

Código PHP:
<html>
<
head>
    <
title>Untitled</title>
    <
script>
    var 
pepe;
    
frase=["Me gustaba más el otro nombre","Mira que poner nombres sin tildes...","Esto es un clásico, que diría Don José","Variable por antonomasia","Mejor con queso"]
    function 
cambio(este){
    
clearTimeout(pepe);
    
cartel=document.getElementById("mensaje");
    
cartel.innerHTML=frase[este.value];
    
cartel.style.visibility="visible";
    
pepe=window.setTimeout("cartel.style.visibility='hidden'",2000);
    }
    
    
</script>
    <style>
    select,form{
    font:normal 10px/15px verdana;
    }
    #mensaje{
    font:bold 15px verdana;
    position:absolute;
    top:50%;
    left:50%;
    margin-left:-100px;
    margin-top:-50px;
    width:200px;
    height:100px;
    text-align:center;
    vertical-align:middle;
    padding:50px 20px 50px 20px;
    background:#ffffcc;
    border:solid 1px black;
    visibility:hidden;
    z-index:99;
    }
    </style>
</head>

<body>
<form>
Elige un nombre para tu primer hijo: <select name="pepote" id="pepote" size="1" onChange="cambio(this)">
    <option value="0" SELECTED>José</option>
    <option value="1">Jose</option>
    <option value="2">Pepito</option>
    <option value="3">Pepe</option>
    <option value="4">chetto</option></select><br><br>
    
    
    
Elige un nombre para tu primera hija: <select name="pepote2" id="pepote2" size="1" onChange="cambio(this)">
    <option value="0" SELECTED>Josefa</option>
    <option value="1">Josefina</option>
    <option value="2">Pepita</option>
    <option value="3">Pepa</option>
    <option value="4">chetta</option></select>
    
</form>
<div id="mensaje"></div>
</body>
</html> 
Un saludo!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.

Última edición por KarlanKas; 09/04/2005 a las 04:26
  #3 (permalink)  
Antiguo 12/04/2005, 06:56
 
Fecha de Ingreso: octubre-2004
Mensajes: 104
Antigüedad: 19 años, 6 meses
Puntos: 0
Perdona, creo que no me has entendido. Te pongo un ejemplo con codigo:

Código:
<select name='nombrecombo' onChange='funcion();'>
    <optgroup label='grupo 1'>
        <option value='1.1'>1.1</option>
        <option value='1.2'>1.2</option>
        <option value='1.3'>1.3</option>
    </optgroup>
    <optgroup label='grupo 2'>
        <option value='2.1'>2.1</option>
        <option value='2.2'>2.2</option>
        <option value='2.3'>2.3</option>
    </optgroup>
    <optgroup label='grupo 3'>
        <option value='3.1'>3.1</option>
        <option value='3.2'>3.2</option>
        <option value='3.3'>3.3</option>
    </optgroup>
</select>
Me refiero a un combo como éste. En este caso por ejemplo al pasar del 2.1 al 1.3 (con la flecha del teclado) o viceversa, no se ejecuta la función que tengo puesta en el onChange de la etiqueta select. Ésto me pasa cada vez que me muevo con las flechas y cambio de optgroup.

Gracias
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 20:41.