Also das nervt mich seit einiger Zeit. Ich habe eine Seite entdeckt, auf der Formularinhalte zweimal intermittierend gesendet wurden. Zur Vereinfachung sind die Eingaben ein Textfeld und eine Schaltfläche. Bei einer weiteren Überprüfung bemerkte ich, dass eine Formularübergabe die Text- und Schaltflächeneingaben enthielt und die andere Übermittlung nur die Texteingabe sendete.HTML-Formular senden POSTS-Eingabeschaltfläche/Werte senden; JavaScript Formular reicht nicht
Ich richte eine Testseite zur Fehlerbehebung ein. Ich habe es auf jsfiddle gestellt, aber ich denke nicht, dass es viel helfen wird, da ich die Werte, die mit einem HTTP-Proxy-Tool wie Fiddler übergeben werden, nicht sehen kann.
https://jsfiddle.net/9xL5w9t2/
<form method="post" action="www.google.com" onsubmit="alert('form submitted');" id="form1" name="form1name">
<input type="submit" value="submit form" id="submitbtn1" name="submitbtn1name" />
<input type="text" id="text1" value="123" name="text1name" />
</form>
<form method="post" action="www.google.com" onsubmit="alert('form submitted');" id="form2" name="form2name">
<input type="button" value="submit form" onclick="alert('button clicked to submit form'); document.form2name.submit();" id="submitbtn2" name="submitbtn2name" />
<input type="text" id="text2" value="123" name="text2name" />
</form>
<form method="post" action="www.google.com" id="form3" name="form3name">
<input type="button" value="submit form" onclick="alert('button clicked to submit form'); document.form3name.submit();" id="submitbtn3" name="submitbtn3name" />
<input type="text" id="text3" value="123" name="text3name" />
</form>
<form method="post" action="www.google.com" onsubmit="alert('form submitted'); this.submit();" id="form4" name="form4name">
<input type="submit" value="submit form" id="submitbtn4" name="submitbtn4name" />
<input type="text" id="text4" value="123" name="text4name" />
</form>
Form 1: Sendet Text und Taste
Form 2: Sendet Text
Form 3: Sendet Text
Form 4: zweimal einreicht. 1) Submits Text 2) Submits Text und Button
Aus den Looks sendet das Senden mit HTML-Formular senden über Text und Tasteneingaben. Das Senden des Formulars mithilfe von JavaScript sendet jedoch nur die Texteingabe. Keine Taste.
Was ist die Erklärung für dieses Verhalten? Warum sendet ein JavaScript-Formular nur Texteingaben, aber HTML-Formularübermittlungen werden über Text- und Schaltflächeneingaben gesendet?
Ist das von Entwurf? Wenn ja, was wären die Gründe? Es scheint inkonsistent zu sein, dass Ihr HTML-Parser den Button-Wert sendet, aber Ihre JS-Engine tut dies nicht.
Vielen Dank für jede Hilfe.
Sie könnten ein Formular mit nur 20 Sendeschaltflächen erstellen, und derjenige, der ausgelöst wird, wird als einziger gesendet. In Ihrem vierten Beispiel sagen Sie logisch: "Wenn dieses Formular gesendet wird, senden Sie es erneut." – Billbad