Hola
ascar:
No estoy seguro del por qué estás usando un
select y no
check o
radio que solucionarían varios de tus problemas. Seguramente es un tema de diseño más que de
practicidad; como el de no poner el
select centrado y que ocupe el espacio que necesite hasta el ancho
de ventana.
Mi inquina hacia las limitaciones de formato en los elementos de formulario ya es visceral. He lanzado diatribas ( algunas en
estos foros ) que terminaron hasta sugiriendo el reemplazo por otros elementos simulados, princpalmente con Javascript,
para darle formato a
selects , input files , checkboxes que se comporten como los reales.
Ésto no va a resolver tu tema, aunque espero que te sirva como una idea nueva.
Código:
<HTML>
<HEAD>
<SCRIPT>
var valor="0"
function alfa(tt,vv){
if(tt.className=="sel"){
tt.className="des"; valor=(valor*1)-(vv*1)}
else {
tt.className="sel"; valor=(vv*1)+(valor*1)}
}
function bravo(){
celdas=document.all.tags("TD");
alert(valor);
for(i=0;i<celdas.length;i++) celdas[i].className="des";
valor=0;
}
function charly(){
valor="";
celdas=document.all.tags("TD");
for(i=0;i<celdas.length;i++){
if(celdas[i].className=="sel") valor+=celdas[i].innerText+" \r\n";
}
alert(valor);
for(i=0;i<celdas.length;i++) celdas[i].className="des";
valor="";
}
</SCRIPT>
<STYLE>
.des{background-color:white; color:black}
.sel{background-color:navy; color:white}
td{}
</STYLE>
</HEAD>
<BODY>
<center>
<div style="width:200px; height:110px; overflow:auto">
<table border=0 style=cursor:default>
<tr><TD class=des onclick="alfa(this,1)"><nobr><b>VALE 01 </b>QWERTYUIOPQWE</nobr></td></tr>
<tr><td class=des onclick="alfa(this,2)"><nobr><b>VALE 02 </b></nobr></td></tr>
<tr><td class=des onclick="alfa(this,4)"><nobr><b>VALE 04 </b>QWERTYUIOPQWERTY</nobr></td></tr>
<tr><td class=des onclick="alfa(this,8)"><nobr><b>VALE 08 </b></nobr></td></tr>
<tr><td class=des onclick="alfa(this,16)"><nobr><b>VALE 16 </b>QWERTYUIOP</nobr></td></tr>
<tr><td class=des onclick="alfa(this,32)"><nobr><b>VALE 32 </b></nobr></td></tr>
<tr><td class=des onclick="alfa(this,64)"><nobr><b>VALE 64 </b>QWERTYUIOPQWERTYUIOP</nobr></td></tr>
</table>
</div>
<p>
<INPUT type=button onclick=bravo() value="Suma Valores">
<p>
<INPUT type=button onclick=charly() value="Suma Cadenas">
</center>
</BODY>
</HTML>
Di por hecho que estás usando un selector múltiple ( la verdad, no sé por qué ); en éste no es necesario usar [
CTRL]
para seleccionar más de una opción, pero tampoco funciona el [
SHIFT] para selección "desde-hasta", ni las teclas de
dirección para bajar o subir, ni las opciones alfanuméricas; así que el saldo termina siendo negativo. Sí, bueno, es sólo un
ejemplo que hice apurado, seguro se puede mejorar.
saludos
furoya