Verificar que selects están seleccionados

Saludos expertos.
Tengo una función que me recupera la opción selecciona de una serie de objetos select que hay en una página.
Esta es la función:
function recuperaselects(){
msg=select1.options[select1.selectedIndex].text+"<br>"+select2.options[select2.selectedIndex].text+"<br>"+select3.options[select3.selectedIndex].text+"<br>"+select4.options[select4.selectedIndex].text+"<br>"+select5.options[select5.selectedIndex].text+"<br>"+select6.options[select6.selectedIndex].text+"<br>"+select7.options[select7.selectedIndex].text+"<br>"+select8.options[select8.selectedIndex].text+"<br>"+select9.options[select9.selectedIndex].text+"<br>"+select10.options[select10.selectedIndex].text+"<br>"+select11.options[select11.selectedIndex].text+"<br>"+select12.options[select12.selectedIndex].text+"<br>"+select13.options[select13.selectedIndex].text+"<br>"+select14.options[select14.selectedIndex].text+"<br>"+select15.options[select15.selectedIndex].text+"<br>"+select16.options[select16.selectedIndex].text
+select17.options[select17.selectedIndex].text+"<br>"+select18.options[select18.selectedIndex].text+"<br>"+select19.options[select19.selectedIndex].text+"<br>"+select20.options[select20.selectedIndex].text+"<br>"+select21.options[select21.selectedIndex].text+"<br>"+select22.options[select22.selectedIndex].text+"<br>"+select23.options[select23.selectedIndex].text+"<br>"+select24.options[select24.selectedIndex].text
+"<BR>"+select25.options[select25.selectedIndex].text+"<br>"+select26.options[select26.selectedIndex].text+"<br>"+select50.options[select50.selectedIndex].text+"<br>"+select51.options[select51.selectedIndex].text;
Me gustaría que en vez de recuperarme todos los selects solo me recuperara los que no están en su opción por defecto si no que el usuario halla seleccionado una de sus opciones.
De tal manera que solo recoge los que se han cambiado de su estado original.
Gracias por vuestra ayuda.
Saludos...
1

1 Respuesta

32.275 pts.
Lo que yo haría primero es mejorar el script, ya que marea un poco y es ilegible. A mi me gustan los bucles:
function recuperaselects(){
cuantos=51;
msg=""
for(a=1;a<=cuantos;a++)
eval("msg+=select"+a+".options[select"+a+".selectedIndex].text<br>")
}
Vale ahora vamos con la duda. La opción por defecto en todos los selects tiene que tener un valor, ya sea 0 o cualquier cosa, eso lo eliges tu. Yo te he puesto "0" en este ejemplo:
function recuperaselects(){
cuantos=51;
msg=""
for(a=1;a<=cuantos;a++)
if(eval("msg+=select"+a+".options[select"+a+".selectedIndex].value=="0"))
eval("msg+=select"+a+".options[select"+a+".selectedIndex].text<br>")
}
De esta manera solo sumara a msg el texto de los select que han sido cambiados de la opción predeterminada con valor "0" o el que quieras.
Espero que te ayude. Puntúa bien

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas