Foros del Web » Programando para Internet » Javascript »

Emular CTRL+Click al hacer click en un select multiple

Estas en el tema de Emular CTRL+Click al hacer click en un select multiple en el foro de Javascript en Foros del Web. Tengo un select múltiple con algunas opciones marcadas como selected por defecto (¿ por qué no habré seguido en el otro mensaje ? ) Cuando ...
  #1 (permalink)  
Antiguo 12/12/2005, 13:12
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
Emular CTRL+Click al hacer click en un select multiple

Tengo un select múltiple con algunas opciones marcadas como selected por defecto (¿por qué no habré seguido en el otro mensaje? )

Cuando el usuario hace click en un option que no está selected, se le deseleccionan los que si estaban selected. Para ello, sabemos que debe hacer CTRL+Click (así mismo para deseleccionar)... pero si hasta yo me olvido de precionar la tecla control, imaginá quien no tiene ni idea del asunto!

¿Cómo se podría hacer para que el click en un option lo seleccione/deseleccione sin afectar el estado de los otros options?
__________________
...___...
  #2 (permalink)  
Antiguo 12/12/2005, 17:02
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Este script lo probé en explorer:

Código:
<html>
	<head>
		<title>
			simular ctrMays
		</title>
		<script type="text/javascript">
			function ini()	{
				window["pepito"] = new Array();
				var dato = document.forms.prueba.pepe.options;
				for (var i = 0, total = dato.length; i < total; i ++)
					window["pepito"][i] = dato[i].selected;
				//alert(pepito);
			}

			function ctrMays()	{
				var dato = document.forms.prueba.pepe.options;
				for (var i = 0, total = dato.length; i < total; i ++)
					if (dato[i].selected)
						pepito[i] = !pepito[i];
				for (var i = 0, total = dato.length; i < total; i ++)
					dato[i].selected = pepito[i];
				//  alert(pepito);
			}
		</script>
	</head>
	<body onload="ini()">
		<form name="prueba" >
			<select name="pepe" multiple="multiple" size="5" onchange="ctrMays()" >
				<option value="t1" selected="selected" >texto 1</option>
				<option value="t2" >texto 2</option>
				<option value="t3" selected="selected" >texto 3</option>
				<option value="t4" >texto 4</option>
				<option value="t5" >texto 5</option>
				<option value="t6" >texto 6</option>
				<option value="t7" selected="selected" >texto 7</option>
				<option value="t8" >texto 8</option>
				<option value="t9" >texto 9</option>
			</select>
		</form>
	</body>
</html>
Espero que te sirva.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 13/12/2005, 18:03
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
Gracias caricatos, también funciona en firefox
__________________
...___...
  #4 (permalink)  
Antiguo 04/05/2006, 12:25
Avatar de El Condor  
Fecha de Ingreso: febrero-2006
Mensajes: 18
Antigüedad: 18 años, 2 meses
Puntos: 0
Muchas gracias un script muy util..

Saludos
El_Condor
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 15:18.