¿Como se puede realizar una función en javascript al enviar un form?

Iniciado por Varlch, 9 Diciembre 2014, 02:02 AM

0 Miembros y 1 Visitante están viendo este tema.

Varlch

Pongamos el ejemplo en el que tengo un form sin ninguna acción algo simple
Código (html4strict) [Seleccionar]
<form action="" method="post">
<input type="text" name="Username"  />
<input type="password" name="Password"  />
<input type="submit" value="Entrar" />
</form>

¿como puedo hacer sin tocar el form  que haga una acción antes de enviar por javascript?

engel lex

haces un listener al boton submit

pero creo que por lo menos tienes que hacer en el submit del boton un return false para que no se dispare prontamente (aunque puedes alterar el form sobre la marcha con jscript)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Varlch


engel lex

por usando tecnicas AJAX... pero tienes que tener el CORS activado en la pagina del script para el que navegador permita peticiones a webs externas (si la web no es tuya olvidalo)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

exploiterstack

#4
Puedes asignarle un manejador de eventos desde javascript como dice engel lex

document.getElementById("botonFormulario").addEventListener("click", nombreFuncion);

O si usas jQuery puedes hacer uso de un callback...

Respecto esto que dices:

¿y como puedo hacer que envié datos a otra web?

Puedes capturar el evento del botón del formulario o de la tecla de intro(ya que también se pueden enviar el formulario haciendo uso de esta tecla también ;)) una vez capturado cambiaría el action a la pagina que deseas que trate los datos, una vez echo esto obtienes mandas el formulario:

$("form").submit();

En tu caso como el formulario no dispone de action tienes que ingeniártelas un poco mas, para ello puedes crearte un formulario que este oculto(hidden) y tras capturar el evento del envio del formulario es cuando tienes que recoger los campos e insertarlos en el nuevo formulario que has creado oculto(ojo este si que tendrá action) de esta manera sigues enviando los datos por POST.

Luego otra opción seria obtener los datos e enviarlos por AJAX en una petición, en esta petición iría el acction que tu le especifiques.

Saludos!

Varlch

Le he dado miles de vuelta a esto y gracias a la gente del IRC pues tengo algo mas o menos potable aquí esta el paper.
http://pastebin.com/4Nq16Mwb