Ecco un abbozzo di ciò che il jQuery dovrebbe essere simile:
$("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
);
});
Questo frammento di codice trova tutti gli elementi del modulo nella pagina e in ascolto per un evento di presentare da loro. Un modulo può essere inviato in diversi modi (facendo clic su un pulsante di invio, premendo invio, ecc.), Quindi per motivi di usabilità, è meglio ascoltare per inviare eventi direttamente opposti all'ascolto per il tasto eventi di clic sui pulsanti di invio .
Quando si verifica un evento di invio, il codice sopra prima impedisce le azioni del browser predefinito (che tra l'altro aggiorna la pagina) chiamando e.preventDefault
. Quindi utilizza $.post per inviare i dati del modulo all'url specificato nell'attributo action. Si noti che $.fn.serialize
viene utilizzato per serializzare i dati del modulo in un formato standard.
Il codice espresso dovrebbe apparire qualcosa di simile:
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 documentazione su express.bodyParser
è un po 'scarsa, ma dopo un po' di code spelunking sembra che utilizza node-querystring sotto le coperte.
Spero che questo aiuti!
Questo è fuori tema, ma considera l'opzione "Nome utente:" e l'elemento di immissione del testo con un [tag etichetta] (https://developer.mozilla.org/en/HTML/Element/label). Rende la forma un po 'più semantica e utilizzabile. – Xavi