Foros del Web » Programando para Internet » Javascript »

problema al enviar form

Estas en el tema de problema al enviar form en el foro de Javascript en Foros del Web. Tengo un form al que envio mediante un select: Código: <select name="score" id="score" onchange="javascript :document.rate.submit();"> y en el evento onsubmit del form llamo a una ...
  #1 (permalink)  
Antiguo 10/01/2007, 04:15
 
Fecha de Ingreso: octubre-2003
Mensajes: 540
Antigüedad: 20 años, 6 meses
Puntos: 1
problema al enviar form

Tengo un form al que envio mediante un select:

Código:
<select name="score" id="score" onchange="javascript:document.rate.submit();">

y en el evento onsubmit del form llamo a una funcion en AJAX y evito que se refresque la pagina:

Código:
<form name="rate" id="rate" method="POST" onsubmit="vote(); return false">

Esto es en mi teoria, porque en realidad cuando muevo el combobox se refresca la pagina.
Que es lo que hago mal?
  #2 (permalink)  
Antiguo 10/01/2007, 04:38
Avatar de Valkam  
Fecha de Ingreso: junio-2006
Ubicación: Sevilla
Mensajes: 157
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: problema al enviar form

Has comprobado (con un alert por ejemplo) que al cambiar una opción en el combo, realmente se esta pasando por la función "vote"??
  #3 (permalink)  
Antiguo 10/01/2007, 04:47
 
Fecha de Ingreso: octubre-2003
Mensajes: 540
Antigüedad: 20 años, 6 meses
Puntos: 1
Re: problema al enviar form

Estoy seguro que no se llega a ejecutar la funcion, de hecho tendria que emitir un alert......pero el punto es: porque se refresca la página?
  #4 (permalink)  
Antiguo 10/01/2007, 06:09
Avatar de Valkam  
Fecha de Ingreso: junio-2006
Ubicación: Sevilla
Mensajes: 157
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: problema al enviar form

Supongo que te la recarga por que estás enviando el formulario "normalmente" sin pasar por la función AJAX que lo haría sin que se recargara la página. En ese caso supongo que el navegador que estes usando "pasa" de lanzar el evento onSubmit. Quizás ese comportamiento sea distinto en cada navegador...¿has probado con otros?

De todas formas...¿por que no asocias la función AJAX con el evento onchange del select directamente y envias el formulario a través de AJAX directamente? No entiendo por que lo estás haciendo así
  #5 (permalink)  
Antiguo 10/01/2007, 09:59
 
Fecha de Ingreso: octubre-2003
Mensajes: 540
Antigüedad: 20 años, 6 meses
Puntos: 1
Re: problema al enviar form

Bueno, no entiendo que pasa asi que lo voy a tener que enviar mediante un input-submit :(
  #6 (permalink)  
Antiguo 10/01/2007, 10:08
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: problema al enviar form

Hola:

Se refresca la página simplemente porque estás "forzando" el submit al hacerlo desde javascript... y la página se refresca debido a que el formulario se envía a la misma página al no tener definido el destino del form (el atributo action)...

return false funciona con los botones tipo submit, pero al usar el método submit cambias el funcionamiento lógico del formulario...

No entiendo ¿porqué se hacen cosas tan rebuscadas...?

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 10/01/2007, 17:50
 
Fecha de Ingreso: octubre-2003
Mensajes: 540
Antigüedad: 20 años, 6 meses
Puntos: 1
Re: problema al enviar form

como puedo hacer para enviarlo desde el combobox?
si llamo directamente a la funcion desde ahi y hago el submit desde dentro de la misma me pasa exactamente lo mismo.
  #8 (permalink)  
Antiguo 11/01/2007, 02:29
Avatar de Valkam  
Fecha de Ingreso: junio-2006
Ubicación: Sevilla
Mensajes: 157
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: problema al enviar form

Si envias los datos con AJAX no es necesario que hagas el submit del formulario.
  #9 (permalink)  
Antiguo 11/01/2007, 02:30
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: problema al enviar form

Hola:

Si el action es inexistente o vacío, el submit se hace hacia la misma página, y por eso da la senseción de refresco, pero es en realidad la "recepción" del formulario... la verdad es que no sé cuál es el destino que quieres para ese formulario...

Para enviar un formulario asociado al eventp change del select de un formulario la instruccuón sería: onchange="this.form.submit()", pero es un envío forzado así que las validaciones -y demás- normales deben rebuscarse un poco...

Para que ejecute la función vote() antes del envío simplemente se hace la llamada antes del submit... y si se quiere condicionar ese submit (validación/comprobación...) debe hacerse también con el evento change...
onchange="vote(); if (valida(this.form) this.form.submit());"

Si no te sirve, intenta detallar mejor tu problema.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 13:42.