2016-07-13 8 views
0

Ich habe ein Problem, wenn meine HTML-Formular senden, Knoten Js app.post {} wird den richtigen Wert erhalten. Wenn ich jedoch onsubmit im Formular verwende, überprüfe den Wert vor dem Abschicken. Dann wird Node Js app.post req.body undefiniert angezeigt.HTML-Formular senden nach Javascript überprüfen Knoten Js req.body Inhalt wird undefined

Originalcode: html:

<form id="formLogin" role="form" action="/loginprocess" method="POST"> 
    <input id="textEmail" name="username"> 
    <input id="textPwd" name="pwd"> 
    <button type="submit" id="btnLogin">login</button> 
</form> 

node.js:

var express = require('express'); 
var bodyParser = require('body-parser'); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({  
    extended: true 
})); 

app.post('/loginprocess', function(req, res) { 

    var username = req.body.username; 
    var pwd = req.body.pwd; 

    console.log("username=" + username); //correct value 
    console.log("pwd=" + pwd);   //correct value 


}); 

jedoch möchte ich Wert überprüfen, dass die Eingabe in Form dann einreichen, also ich das Formular Code aktualisieren, wie folgt:

html:

<form id="formLogin" role="form" action="/loginprocess" method="POST" onsubmit="return checkLoginInfo()"> 
    <input id="textEmail" name="username"> 
    <input id="textPwd" name="pwd"> 
    <button type="submit" id="btnLogin">login</button> 
</form> 

<script type="text/javascript"> 
function checkLoginInfo() { 
    var username = document.getElementById("textEmail").value; 
    var pwd = document.getElementById("textPwd").value; 

    if ((username.length > 0) && (pwd.length > 0)) { 
     console.log("yes"); 
    } else { 
     console.log("no"); 
     return false; 
    } 
} 
</script> 

mein Knoten js:

var express = require('express'); 
var bodyParser = require('body-parser'); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({  
    extended: true 
})); 

app.post('/loginprocess', function(req, res) { 

    var username = req.body.username; 
    var pwd = req.body.pwd; 

    console.log("username=" + username); //undefined 
    console.log("pwd=" + pwd);   //undefined 


}); 
+0

Wo ist Ihre Übermittlungsbestätigung? – Roysh

+0

nach 'console.log (" Ja ");' versuchen Sie, 'return;' – Roysh

+0

Ich hatte Return nach console.log ("Ja"); aber immer noch undefined von req.body.username und pwd –

Antwort

0

aktualisiert.

Da Sie die Frage aktualisiert haben, würde ich vorschlagen, dass Sie dies:

onsubmit="return checkLoginInfo(this)" <!-- pass the form here --> 

nun in der Funktion js:

function checkLoginInfo(frm) { // <----get the form here 
    var username = document.getElementById("textEmail").value; 
    var pwd = document.getElementById("textPwd").value; 

    if ((username.length > 0) && (pwd.length > 0)) { 
    console.log("yes"); 
    frm.submit(); // <-----if valid just submit it here. 
    } else { 
    console.log("no"); 
    return false; 
    } 
} 
+0

Sorry, ich hatte einige CSS-Code zum Posten dieser Nachricht entfernen, und entfernen Sie auch ID-Tag. Ich hatte meine Frage bereits aktualisiert. –

+0

Ich hatte meinen Code geändert wie folgt Ihre Anweisung: onsubmit = "zurück checkLoginInfo (this)" -Funktion checkLoginInfo (frm) { var username = document.getElementById ("textEmail"). Value; var pwd = dokument.getElementById ("textPwd"). Value; if ((benutzername.length> 0) && (pwd.length> 0)) { console.log ("ja"); frm.submit(); } sonst { console.log ("nein"); Rückgabe false; } }; immer noch undefined –

0

Wenn Ihr Benutzername und das Passwort korrekt sind Ihre Funktion checklogin (im Client js-Code) gibt nichts zurück, Sie müssen eine Rückkehr darin

hinzufügen und auch eine ID zu Ihrem htm hinzufügen l Eingaben (Benutzername und Passwort)

+0

aber dann warum er sagt, dass er undefiniert auf Node-Server. Wenn ID falsch ist, wird das Formular nicht gesendet. – enRaiser

+0

weil die Parameter nicht an den Knoten js weitergeleitet werden, da er sie nur blockiert, ein document.getElementById ("formLogin"). Submit() wird die Arbeit tun, denke ich –

+0

Hallo Hicham Zouarhi, ich schreibe wie du beschrieben aber immer noch undefiniert. –

Verwandte Themen