He aquí un esbozo de lo que su jQuery debe verse como:
$("form").submit(function(e) {
e.preventDefault(); // Prevents the page from refreshing
var $this = $(this); // `this` refers to the current form element
$.post(
$this.attr("action"), // Gets the URL to sent the post to
$this.serialize(), // Serializes form data in standard format
function(data) { /** code to handle response **/ },
"json" // The format the response should be in
);
});
Este fragmento de código busca todos los elementos del formulario en la página y detecta un evento presentará de ellos. Un formulario se puede enviar de varias formas (por ejemplo, haciendo clic en un botón de enviar, presionando enter, etc.), por lo que, para mayor facilidad de uso, es mejor escuchar los eventos de envío directamente opuestos a escuchar para hacer clic en la tecla de eventos en los botones de envío .
Cuando se produce un evento de envío, el código anterior primero impide las acciones predeterminadas del navegador (que, entre otras cosas, actualiza la página) llamando al e.preventDefault
. Luego usa $.post para enviar los datos del formulario a la url especificada en el atributo de acción. Tenga en cuenta que $.fn.serialize
se utiliza para serializar los datos del formulario en un formato estándar.
Su código expreso debería ser algo como esto:
var express = require('express')
, app = express.createServer();
app.use(express.bodyParser()); // Automatically parses form data
app.post('/Send', function(req, res){ // Specifies which URL to listen for
// req.body -- contains form data
});
app.listen(3000);
La documentación sobre express.bodyParser
es un poco escaso, pero después de un poco de code spelunking Parece que utiliza node-querystring debajo de las cubiertas.
Espero que esto ayude!
Esto está fuera de tema, pero considere envolver "Nombre de usuario:" y el elemento de entrada de texto con una [etiqueta de etiqueta] (https://developer.mozilla.org/en/HTML/Element/label). Hace que la forma sea un poco más semántica y utilizable. – Xavi