Es gibt keine dumme Frage, also gehen wir weiter: Was ist der Unterschied zwischen <input type='button' />
und <input type='submit' />
?Unterschied zwischen <input type = 'button' /> und <input type = 'submit' />
Antwort
<input type="button" />
Schaltflächen senden kein Formular - sie tun nichts standardmäßig. Sie werden normalerweise in Verbindung mit JavaScript als Teil einer AJAX-Anwendung verwendet.
<input type="submit">
Schaltflächen übermitteln die Form, in der sie sich befinden, wenn der Benutzer auf sie klickt, sofern Sie nicht anders mit JavaScript angeben.
Auch Browser können die "Enter" -Taste auf einem Formular erfassen und senden Sie das Formular automatisch, wenn es eine Schaltfläche senden , aber nicht anders. –
Sie tun das auch, wenn Sie einen type = "image" haben, der verwendet werden kann, um eine Formular-Übermittlung auszulösen, wenn Sie darauf klicken. – jishi
Herr Shiny und New: Formulare können über die Eingabetaste ohne Schaltflächen eingereicht werden. Es reicht zum Beispiel, sich auf eine Texteingabe zu konzentrieren. – Lasar
Ein 'Knopf' ist nur das, ein Knopf, zu dem Sie zusätzliche Funktionalität mit Javascript hinzufügen können. Ein Eingabetyp "Übergeben" hat die Standardfunktionalität zum Übermitteln des Formulars, in das es eingefügt wurde (obwohl Sie natürlich zusätzliche Funktionen mithilfe von Javascript hinzufügen können).
Button wird Formular nicht von allein senden.Es ist eine einfache Schaltfläche, die verwendet wird, um einige Operationen mithilfe von Javascript durchzuführen, während Senden ist eine Art Schaltfläche, die das Formular standardmäßig senden, wenn der Benutzer auf Senden Schaltfläche klickt.
IE 8 verwendet tatsächlich die erste Schaltfläche trifft auf Senden oder Schaltfläche. Anstatt einfach anzugeben, was gewünscht wird, indem Sie es zu einem Eingabetyp machen = submit ist die Reihenfolge auf der Seite tatsächlich signifikant.
<input type="button">
können überall verwendet werden, nicht nur in Form und sie nicht Formular einreichen, wenn sie in einem sind. Viel besser geeignet mit Javascript
.
<input type="submit">
sollte nur in Formularen verwendet werden und sie werden eine Anfrage (entweder GET oder POST) an angegebene URL senden. Sie sollten nicht in irgendeinem HTML-Platz setzen.
W3C deutlich machen, von der Spezifikation über Button-Element
Knopf ohne Standardverhalten für alle Arten von Buttons als generische Klasse gesehen werden kann.
Es soll auch, dass eine benannte Eingabe vom Typ erwähnt werden = „submit“ wird auch zusammen benannte Felder mit den anderen Formularen eingereicht werden, während eine Eingabe mit dem Namen type = „button“ nicht.
Mit anderen Worten, im Beispiel unten, wird der benannte Eingang name=button1
NICHT vorgelegt bekommen, während der genannte Eingang name=submit1
vorgelegt bekommen.
Beispiel-HTML-Formular (index.html):
<form action="checkout.php" method="POST">
<!-- this won't get submitted despite being named -->
<input type="button" name="button1" value="a button">
<!-- this one does; so the input's TYPE is important! -->
<input type="submit" name="submit1" value="a submit button">
</form>
Das PHP-Script (checkout.php), dass die obige Form der Aktion verarbeiten:
<?php var_dump($_POST); ?>
Test, um die oben auf dem lokalen Computer durch Erstellen der zwei Dateien in einem Ordner mit dem Namen/tmp/test/dann Ausführen des integrierten PHP-Webservers von der Shell:
Öffnen Sie Ihren Browser unter http://localhost:3000 und sehen Sie selbst.
Man würde sich fragen, warum wir einen benannten Knopf einreichen müssen? Es hängt vom Backend-Skript ab. Zum Beispiel wird das WooCommerce WordPress-Plugin eine Checkout-Seite nicht bearbeiten, es sei denn, die Place Order
genannte Schaltfläche wird ebenfalls übermittelt. Wenn Sie den Typ von ändern, senden Sie an Schaltfläche, dann wird diese Schaltfläche nicht gesendet und somit wird das Auschecken Formular nie verarbeitet werden.
Dies ist wahrscheinlich ein kleines Detail, aber Sie wissen, der Teufel steckt im Detail.
Entspricht das der Spezifikation oder ist es vom Browser abhängig? –
type='Submit'
ist auf vorwärts gesetzt & erhalten Sie die Werte auf BACK-END (PHP, .NET usw.). type='button'
wird das normale Tastenverhalten widerspiegeln.
Siehe auch ** [input type = "submit" Vs-Button-Tag sind sie austauschbar?] (Http://stackoverflow.com/questions/7117639/input-type-submit-vs-button-tag-are-they -interchangeable) ** – hippietrail
Ich hatte die gleiche Frage, und das ist definitiv keine dumme Frage, vor allem, wenn Sie ein asp.net Web Forms Entwickler Ihr ganzes Leben waren, wo wir nicht regelmäßig html sehr Tag verwenden, weil die dumme asp. net controls spuckt diese Scheiße für uns aus ... deshalb sind wir am Ende dumm, wenn wir zu MVC gehen und zurück zum Kindergarten gehen müssen, um herauszufinden, wie man wieder einfache Formelemente programmieren kann. :) – PositiveGuy
Das HTML