Non esiste una domanda stupida, quindi eccoci qui: qual è la differenza tra <input type='button' />
e <input type='submit' />
?
Non esiste una domanda stupida, quindi eccoci qui: qual è la differenza tra <input type='button' />
e <input type='submit' />
?
Risposte:
<input type="button" />
i pulsanti non invieranno un modulo: non fanno nulla per impostazione predefinita. Sono generalmente utilizzati insieme a JavaScript come parte di un'applicazione AJAX.
<input type="submit">
i pulsanti invieranno il modulo in cui si trovano quando l'utente fa clic su di essi, salvo diversamente specificato con JavaScript.
Un "pulsante" è proprio questo, un pulsante, al quale è possibile aggiungere funzionalità aggiuntive utilizzando Javascript. Un tipo di input "submit" ha la funzionalità predefinita di invio del modulo in cui è inserito (anche se, ovviamente, è ancora possibile aggiungere funzionalità aggiuntive utilizzando Javascript).
Il pulsante non invia il modulo da solo. È un semplice pulsante che viene utilizzato per eseguire alcune operazioni utilizzando javascript, mentre Invia è un tipo di pulsante che per impostazione predefinita invia il modulo ogni volta che l'utente fa clic sul pulsante di invio.
Internet Explorer 8 utilizza effettivamente il primo pulsante che incontra inoltra o pulsante. Invece di indicare facilmente quale è desiderato rendendolo un tipo di input = inviare l'ordine sulla pagina è in realtà significativo.
Va inoltre menzionato che un input denominato di tipo = "submit" verrà inviato anche insieme ai campi con nome dell'altro modulo mentre un input denominato = "button" non lo farà.
Con altre parole, nell'esempio qui sotto, l'ingresso di nome name=button1
NON ottenere presentata mentre l'ingresso di nome name=submit1
SARÀ ottenere presentato.
Modulo HTML di esempio (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>
Lo script PHP (checkout.php) che elabora l'azione del modulo sopra:
<?php var_dump($_POST); ?>
Prova quanto sopra sul tuo computer locale creando i due file in una cartella denominata / tmp / test / quindi eseguendo il server web PHP integrato dalla shell:
php -S localhost:3000 -t /tmp/test/
Apri il tuo browser su http: // localhost: 3000 e vedi di persona.
Ci si potrebbe chiedere perché dovremmo inviare un pulsante con nome? Dipende dallo script back-end. Ad esempio il plug-in WordPress di WooCommerce non elaborerà una pagina di checkout pubblicata a meno che non venga inviato anche il Place Order
pulsante con nome. Se si modifica il tipo da pulsante Invia a , questo pulsante non verrà inviato e quindi il modulo di pagamento non verrà mai elaborato.
Questo è probabilmente un piccolo dettaglio, ma sai, il diavolo è nei dettagli.
<input type="button">
possono essere utilizzati ovunque, non solo all'interno del modulo e non inviano il modulo se si trovano in uno. Molto più adatto con Javascript
.
<input type="submit">
devono essere utilizzati solo nei moduli e invieranno una richiesta (GET o POST) all'URL specificato. Essi dovrebbero non essere messi in qualsiasi luogo HTML.
Il W3C chiarisce le specifiche sull'elemento Button
Il pulsante può essere visto come una classe generica per tutti i tipi di pulsanti senza comportamento predefinito.
type='Submit'
è impostato per inoltrare e ottenere i valori su BACK-END (PHP, .NET ecc.).
type='button'
rifletterà il normale comportamento dei pulsanti.