Richtige Art und Weise zu Lesen Kontrollkästchen Daten in NodeJS
Ich habe ein Formular auf meiner Webseite und Ihr vorgelegt wird eine NodeJS-backend.
Ich habe Probleme mit den Checkboxen. Wenn die eingereichten server, und ich lese Sie per req.body.foods
, bekomme ich so etwas wie ['on', 'on', 'on']
.
Aber ich möchte, um die tatsächlichen Werte, das heißt, so etwas wie ['dairy', 'fish']
etc.
Wie kann ich das tun?
<div class="col-sm-6">
<div class="checkbox">
<label><input name="food" type="checkbox" value="dairy">Dairy</label>
</div>
<div class="checkbox">
<label><input name="food" type="checkbox" value="meat">Meat</label>
</div>
<div class="checkbox">
<label><input name="food" type="checkbox" value="fish">Fish</label>
</div>
</div>
- können Sie zeigen, das javascript verwendet, um POST-Daten zu Knoten
- es gibt kein Javascript. Nur
<form action="/submit" method="POST">
- ah ok. wenn Sie sagen, Sie bekommen
['on', 'on', 'on']
sind es andere Dinge als gut? können Sie Ihnen der volle Körper - Zu sehen stackoverflow.com/questions/20965775/...
- ja, es gibt einige text-inputs in form, aber Sie kommen auf den server Ende als erwartet. Das heißt, wenn der Benutzer Arten
hello
im Eingang, auf dem serverreq.body.greeting
zurückhello
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die folgenden in der node.js Datei:
Wenn Sie nur eine checkbox ausgewählt, das in die Seite (z.B.: Milchprodukte), gibt es "Milch". Wenn mehr als eine checkbox, dann bekommen Sie "{ 'Molkerei', 'Fleisch' }" in der Ausgabe. Stellen Sie sicher, dass die Checkboxen im Formular.
Andere Methode:
Gehören ein hidden-input-element im Formular:
Gehören auch ein Aufruf einer javascript-Datei in das onchange-Ereignis der jede checkbox oder in das onclick-Ereignis der Schaltfläche Einreichen in der form.
Verwenden Sie eine javascript-Funktion um eine Schleife durch deine checkbox und bauen Sie eine durch Kommas getrennte Liste der ausgewählten Werte:
Nun in die node.js Datei, verwenden Sie den folgenden code, um die Liste der Werte:
console.log(req.body.food)
werden NICHT gedruckt die Werte, es wird gedruckt 'auf'