Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Otros Temas » JavaScript » Emular CTRL+Click al hacer click en un select múltiple Responder al tema
Nuevo tema


Página 1 de 1  [ 3 mensajes ] 
 
Nota 2008-11-18 06:57 @331

Perlero Nuevo
Registrado: 2008-09-19 09:35 @441
Mensajes: 33
Emular CTRL+Click al hacer click en un select múltiple
Buenas gente de perlenespanol:

Encontré este código por la web y hace lo que necesito pero con un problema, cuando seleccionas uno se va al último de la lista seleccionada... yo quería ver si hay alguna forma de que eso no pase y se quede donde estaba, ya que la lista que tengo son muchísimos y es molesto que pase eso.
Syntax: [ Download ] [ Hide ]
  1. <html> 
  2. <head> 
  3. <title> 
  4. simular ctrMays 
  5. </title> 
  6. <script type="text/javascript"> 
  7. function ini() { 
  8. window["listass"] = new Array(); 
  9. var dato = document.forms["Form1"].listasel.options; 
  10. for (var i = 0, total = dato.length; i < total; i ++) 
  11. window["listass"][i] = dato[i].selected; 
  12. // --> 
  13. function ctrMays() { 
  14. var dato = document.forms["Form1"].listasel.options; 
  15. for (var i = 0, total = dato.length; i < total; i ++) 
  16. if (dato[i].selected) 
  17. listass[i] = !listass[i];  
  18. for (var i = 0, total = dato.length; i < total; i ++) 
  19. dato[i].selected = listass[i]; 
  20.  
  21. </script> 
  22. </head> 
  23. <body onload="ini()"> 
  24. <form method="post" action="" name="Form1"> 
  25. <select multiple onchange="javascript:ctrMays()" size="10" name="listasel"> 
  26. <option value="t1" selected="selected" >texto 1</option> 
  27. <option value="t2" >texto 2</option> 
  28. <option value="t3" selected="selected" >texto 3</option> 
  29. <option value="t4" >texto 4</option> 
  30. <option value="t5" >texto 5</option> 
  31. <option value="t6" >texto 6</option> 
  32. <option value="t7" selected="selected" >texto 7</option> 
  33. <option value="t8" >texto 8</option> 
  34. <option value="t9" >texto 9</option> 
  35. </select> 
  36. </form> 
  37. </body> 
  38. </html> 



Saludos.. Pablo


Nota 2008-11-18 07:32 @356
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10250
La solución obvia es enseñar al usuario a usar la tecla Control.

De otra forma (no probado), podrías modificar la función ctrMays() para que, primero, guarde en una variable la entrada que está seleccionada (con selectedIndex()) y, al final, darle a selectedIndex() ese mismo valor.

Actualización: Puedo confirmarte que en Konqueror sí que funciona el código que has puesto y de la forma que deseabas. En cambio, en Firefox 3, no. Así que es cosa de cada cliente.

_________________
JF^D Perl programming


Nota 2008-11-18 09:31 @438

Perlero Nuevo
Registrado: 2008-09-19 09:35 @441
Mensajes: 33
Gracias por la respuesta. Por lo pronto lo dejamos con Control, pero si encuentro una solución que funcione bien veo de cambiarla, lo de selectedIndex, no la conocía. Ahora veo.

Gracias, Pablo.


Responder al tema  [ 3 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO