Oto szorstki zarys tego, co Twój jQuery powinna wyglądać następująco:
$("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
);
});
Ten fragment kodu wyszukuje wszystkie elementy formularza na stronie i nasłuchuje zdarzenia złożyć z nich. Formularz można przesłać na kilka sposobów (np. Klikając przycisk Wyślij, naciskając klawisz Enter itd.), Więc ze względu na użyteczność najlepiej jest wysłuchać zgłoszeń przesłanych bezpośrednio w przeciwieństwie do odsłuchiwania przycisków zdarzeń kliknięcia na przyciskach przesyłania .
Gdy wystąpi zdarzenie submit, powyższy kod zapobiega domyślnym działaniom przeglądarki (które między innymi odświeża stronę), wywołując e.preventDefault
. Następnie używa $.post, aby wysłać dane formularza do adresu URL określonego w atrybucie działania. Zauważ, że $.fn.serialize
służy do serializowania danych formularza w standardowym formacie.
wyraźnej kod powinien wyglądać mniej więcej tak:
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);
Dokumentacja na express.bodyParser
jest nieco skąpe, ale po kawałku code spelunking wygląda używa node-querystring pod kołdrą.
Mam nadzieję, że to pomoże!
To nie jest temat, ale należy rozważyć zawijanie "Nazwa użytkownika:" i element wprowadzania tekstu za pomocą [znacznika etykiety] (https://developer.mozilla.org/en/HTML/Element/label). Dzięki temu forma staje się bardziej semantyczna i użyteczna. – Xavi