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.
- <html>
- <head>
- <title>
- simular ctrMays
- </title>
- <script type="text/javascript">
- function ini() {
- window["listass"] = new Array();
- var dato = document.forms["Form1"].listasel.options;
- for (var i = 0, total = dato.length; i < total; i ++)
- window["listass"][i] = dato[i].selected;
- }
- // -->
- function ctrMays() {
- var dato = document.forms["Form1"].listasel.options;
- for (var i = 0, total = dato.length; i < total; i ++)
- if (dato[i].selected)
- listass[i] = !listass[i];
- for (var i = 0, total = dato.length; i < total; i ++)
- dato[i].selected = listass[i];
- }
- </script>
- </head>
- <body onload="ini()">
- <form method="post" action="" name="Form1">
- <select multiple onchange="javascript:ctrMays()" size="10" name="listasel">
- <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>
Saludos.. Pablo