Foros del Web » Programando para Internet » Javascript »

funcion que vacia varios combosbox y hace submit

Estas en el tema de funcion que vacia varios combosbox y hace submit en el foro de Javascript en Foros del Web. Buenas, tengo un formulario con 4 combos: (combo1, combo2, combo3 y combo4) Los combos se seleccionan de forma secuencial, no puedo seleccionar una opción del ...
  #1 (permalink)  
Antiguo 10/03/2011, 15:33
 
Fecha de Ingreso: noviembre-2005
Ubicación: Alicante (España)
Mensajes: 242
Antigüedad: 16 años, 10 meses
Puntos: 1
funcion que vacia varios combosbox y hace submit

Buenas,

tengo un formulario con 4 combos: (combo1, combo2, combo3 y combo4)

Los combos se seleccionan de forma secuencial, no puedo seleccionar una opción del combo 3 sin haber completado el 1 y el 2.
El combo3, por ejemplo, está desactivado si no he completado el dos y se habilitara en el momento en el que informe este último.

Lo que si puedo hacer es cambiar la opción de un combo ya seleccionado.

Tengo una variable estado que me dice en qué combo estoy.

Todos los combos tienen en el onchange this.form.submit.
Así que, nada más seleccionar un combo se recarga la página.

Ahora bien, lo que yo quiero es que, si el usuario cambia una opción ya seleccionada, se vacíen los combos posteriores y me vuelva al estado en el que estoy.

Por ejemplo:

He completado el combo 1 , el combo 2 y el combo 3. Si yo cambio ahora el combo 2, me gustaría poder vaciar el combo 3 para que, al hacer submit, no se envíe el valor seleccionado. Pero no sé cómo se hace esto en javascript.

<SELECT NAME="combo1" onchange="this.form.submit()">

Me imagino que, en el onchange, tendré que llamar a una función y pasarle el formulario como parámetro.

Luego, en la función, tendré que averiguar qué combo ha hecho el submit porque, sabiendo el combo, conozco el estado y sé qué combos debo vaciar antes del submit.

Y, finalmente, debería hacer precisamente eso, vaciarlos.

pero no sé como escribir esta función con esos tres pasos en código javascript. ¿puede alguien implementarme estas tres sentencias?

Un saludo.
  #2 (permalink)  
Antiguo 11/03/2011, 01:39
 
Fecha de Ingreso: noviembre-2005
Ubicación: Alicante (España)
Mensajes: 242
Antigüedad: 16 años, 10 meses
Puntos: 1
Respuesta: funcion que vacia varios combosbox y hace submit

Por si alguien no entiende realmente el caso que trato de resolver, expongo un ejemplo:

Completo el combo 1 con la opción “Pepe”
El combo 2 con la opción “trabaja”
El combo 3 con la opción “mucho”

Ahora cambio el combo 2 por la opción “descansa”

Y, al hacer submit, está enviando también el valor “mucho” en el combo 2. Yo no quiero que envíe nada en el combo 3 porque ha modificado el 2 y, es posible que esa opción no debiera aparecer si realizamos la consulta con la nueva opción del combo 2. Es incongruente decir que “Pepe descansa mucho”.

He implementado un esquema de la función que necesito:

<SELECT NAME="combo1" onchange="actualizaEstado(this.form)"</SELECT>
<SELECT NAME="combo2" onchange="actualizaEstado(this.form)"</SELECT>
<SELECT NAME="combo3" onchange="actualizaEstado(this.form)"</SELECT>
<SELECT NAME="combo4" onchange="actualizaEstado(this.form)"</SELECT>



Function actualizaEstado(form) {

//Este es el código que necesitaría implementar
// Paso 1. Averiguar qué combo ha llamado a la función y va a realizar el submit.

Si combo1 llama a la función -> vaciar combos 2, 3 y 4 y variable estado = 2;
Si combo2 llama a la función -> vaciar combos 3 y 4 y variable estado = 3;
Si combo3 llama a la función -> vaciar combo 4 y variable estado = 4;
Si combo4 llama a la función -> variable estado = 5;
¿Cómo vacío un combo informado en javascript? ¿Cual es la sentencia?

Necesito Averiguar el combo que se pulsó, vaciar los combos posteriores y obtener la variable estado. Luego hacer submit.
}

¿Alguien puede escribirme esta función? ¿Se puede hacer?
Estoy un poco perdido y no sé escribir esto en javascript.

Un saludo.

Última edición por Tarzan; 11/03/2011 a las 07:29

Etiquetas: funcion, submit, vacias
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




La zona horaria es GMT -6. Ahora son las 19:32.