Foros del Web » Programando para Internet » Javascript »

Si no cambio la opcion de un combo

Estas en el tema de Si no cambio la opcion de un combo en el foro de Javascript en Foros del Web. Si tengo un combo,con sus opciones, y el usuario escoge la que esta estaba predefinida, ó ya habia escogido una, y volvio a abrir el ...
  #1 (permalink)  
Antiguo 01/08/2007, 13:38
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Si no cambio la opcion de un combo

Si tengo un combo,con sus opciones, y el usuario escoge la que esta estaba predefinida, ó ya habia escogido una, y volvio a abrir el combo, y eligio la misma opcion que habia eligido anteriormente.......... como puedo darme cuenta de eso?
Gracias
$d$!
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #2 (permalink)  
Antiguo 01/08/2007, 20:08
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Si no cambio la opcion de un combo

Yo utilizaría un campo hidden para almacenar un "si" o un "no" según lo que tu te refieres.

Inicialmente en el campo tenemos "no". Lo que deberías hacer, es que si salta el evento onchange, ponemos el campo a valor "no".

Lo que dudo es que si se abre el select y se selecciona la misma option, es si salta el onchange. Pero bueno eso podrías controlarlo con una variable que guarde el "antes" y compararlo con el "ahora".


Supongo que funcionará, postea un intento
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #3 (permalink)  
Antiguo 02/08/2007, 07:40
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Re: Si no cambio la opcion de un combo

Si abre el select y eligio la misma opcion no entra al onchange, lo que si funciona es poner una opcion vacia al principio, y poner un onclick a cada option y ahi ya me doy cuenta en cual entro aunque sea el mismo..
$d$!
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #4 (permalink)  
Antiguo 02/08/2007, 16:56
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 18 años, 7 meses
Puntos: 3
Re: Si no cambio la opcion de un combo

mm lo que dice derkenuke creo, si le entendi, ya lo he hecho, manejo dos eventos en un select, un onchange y un onclick, me ejecuta primero el onclick al momento de dar clic para desplegar las opciones, entonces en ese evento guardo el valor que tiene en el momento el select, eso lo hago para saber que opcion habia antes de la nueva que seleccionaron, ese "valor original", que es asignado a un campo oculto, me sirvio de mucho... tal vez en tu caso sea parecido...
__________________
Wow! No se que decir...
  #5 (permalink)  
Antiguo 02/08/2007, 18:00
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Si no cambio la opcion de un combo

Esto te puede dar una idea de cómo hacerlo:
Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<
html>
<
head>
<
titlePágina nueva </title>
<
meta name="Author" content="derkeNuke">
<
style type="text/css">
</
style>
</
head>

<
body onload="registrarSeleccionado('elSelect');">



<
select id="elSelect" onchange="registrarCambio(this)">
    <
option>Uno</option>
    <
option selected="selected">Dos</option>
    <
option>Tres</option>
    <
option>Cuatro</option>
    <
option>Cinco</option>
    <
option>Seis</option>
</
select> <br/>
<
input type="hidden" name="haCambiado" value="no" id="oculto" /> <br/>
<
input type="button" value="fin" onclick="alert( $('oculto').value )" />

<
script type="text/javascript">
function 
e(q,br) {
    
document.body.appendChilddocument.createTextNode(q) );
    if(!
brdocument.body.appendChilddocument.createElement("BR") );
}
function $(
x) { return document.getElementById(x); }


function 
registrarCambio(sel) {
    $(
"oculto").value = (sel.options.selectedIndex == sel.originalSeleccionado)? "no":"si";
}

function 
registrarSeleccionado(idSel) {
    var 
sel = $(idSel);
    
sel.originalSeleccionado sel.options.selectedIndex;
}

</script>
</body>
</html> 
En FF es mucho más fácil, basta con mirar si existe el atributo selected en la option seleccionada; pero IE cambia el código HTML al cambiar el option seleccionado

Lo único no registra todavía eso que tú comentabas de reabrir el select y seleccionar otra vez la misma opción, al no saltar el onchange, habría que averiguarlo con onclick me temo. Quizás sea más sencillo todo con onclick.



Sólo por curiosidad, ¿qué fin tiene este código?
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #6 (permalink)  
Antiguo 03/08/2007, 07:37
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Re: Si no cambio la opcion de un combo

El fin:
Lo que pasa que al cargar la pagina, tengo un combo, selecciona la opcion, y luego con DOM, creo un div y obtengo la opcion seleccionada y desaparesco el combo...si el usuario quiere cambiar la opcion, hace click en el div y aparece el combo y vuelve a hacer el mismo proceso hasta que quede en div...... lo necesito en el div, por q ese dato está dentro de una tabla ...pero esa tabla tiene que poder ordenarse(uso una libreria para ordenar, dando click en los th)y pues si esta un select dentro de un td , entonces la libreria no puede ordenar......si el usuario escogia un option diferente si funciona , pero si lo abria y no escogia ninguna entonces no entraba al onchange, pero lo que hice fue poner un option vacio , para que siempre tuviera que escoger una.
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #7 (permalink)  
Antiguo 03/08/2007, 08:02
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Si no cambio la opcion de un combo

... Si, es buena la solución del option vacío, te ahorrará muchos problemas jeje.

Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
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 05:30.