Wie kann ich den Wert eines HTML-Formulars an JavaScript übergeben?
Ist das richtig? Mein Skript verwendet zwei Argumente, eines aus dem Textfeld und eines aus dem Dropdown-Feld.
<body>
<form name="valform" action="" method="POST">
Credit Card Validation: <input type="text" id="cctextboxid" name="cctextbox"><br/>
Card Type: <select name="cardtype" id="cardtypeid">
<option value="visa">Visa</option>
<option value="mastercard">MasterCard</option>
<option value="discover">Discover</option>
<option value="amex">Amex</option>
<option value="diners">Diners Club</option>
</select><br/>
<input type="button" name="submit" value="Verify Credit Card" onclick="isValidCreditCard(document.getElementById('cctextboxid').value,document.getElementById('cardtypeid').value)" />
</body>
javascript
html
user377419
quelle
quelle
Antworten:
HTML:
JS:
quelle
nameValue
ist der Standardwert und nicht das, was der Benutzer eingegeben hat.Wenn Sie die Formularwerte abrufen möchten (z. B. diejenigen, die über einen HTTP-POST gesendet werden), können Sie Folgendes verwenden:
JavaScript
form-serialize ( https://code.google.com/archive/p/form-serialize/ )
jQuery
quelle
FormData
selbst macht nichts. Sie müssen die Werte noch aus dem Formular abrufen.FormData.entries()
um die Werte abzurufen. Darüber hinausFormData.entries()
ist es in Safari, Explorer oder Edge nicht verfügbar. developer.mozilla.org/en-US/docs/Web/API/FormDataformData.entries()
hängt es davon ab, wonach Sie suchen. Wenn Sie nach dem Wert eines einzelnen Feldes suchen, können Sie es verwendenformData.get(name)
. Referenz: get () .FormData
auf Chrome nichts ausgeben.Hier ist ein Beispiel von W3Schools:
Die Demo finden Sie hier .
quelle
var obj = {};
zuvar obj = [];
.obj
unabhängig davon, welcher ausgewählt ist. Das Problem wird hier demonstriert (wählen Sie 'Option 1'). W3schools.com/code/tryit.asp?filename=GEZXJXBBI7AWdocument.forms
enthält eine Reihe von Formularen auf Ihrer Seite. Sie können diese Formulare durchlaufen, um das gewünschte Formular zu finden.Jedes Formular verfügt über ein Elementarray, das Sie durchlaufen können, um die gewünschten Daten zu finden. Sie sollten auch über den Namen darauf zugreifen können
quelle
Meine 5 Cent hier, mit
form.elements
denen Sie jedes Feld nach ihmname
abfragen können , nicht nur nach Iteration:quelle
Erweitern Sie die Idee von Atrur Klesun ... Sie können einfach über den Namen darauf zugreifen, wenn Sie getElementById verwenden, um das Formular zu erreichen. In einer Zeile:
Ich habe es so für Optionsfelder verwendet und gut funktioniert. Ich denke, hier ist es genauso.
quelle
Mehrere benutzerfreundliche Formularserialisierer mit guter Dokumentation.
In der Reihenfolge der Github-Sterne,
jquery.serializeJSON
jquery-serialize-object
form2js
form-serialize
quelle
Dies ist ein entwickeltes Beispiel für https://stackoverflow.com/a/41262933/2464828
Erwägen
Nehmen wir an, wir möchten die Eingabe des Namens abrufen
formula
. Dies kann durch Übergabeevent
desonsubmit
Feldes erfolgen. Wir können dannFormData
die Werte dieser exakten Form abrufen, indem wir auf dasSubmitEvent
Objekt verweisen .Der obige JavaScript-Code druckt dann den Wert der Eingabe in die Konsole.
Wenn Sie die Werte iterieren möchten, dh alle Werte abrufen möchten, lesen Sie https://developer.mozilla.org/en-US/docs/Web/API/FormData#Methods
quelle
Schnelle Lösung zum Serialisieren eines Formulars ohne Bibliotheken
quelle
quelle