javascript - Kan jeg få en <button> til å ikke sende inn et skjema?
Jeg har et skjema, med 2 knapper
<a href="index.html"><button>Cancel changes</button></a>
<button type="submit">Submit</button>
Jeg bruker jQuery UIs knapp på dem også, enkelt slik
$('button').button();
Men den første knappen sender også inn skjemaet. Jeg hadde trodd at hvis den ikke hadde type="submit", ville den ikke gjort det.
Selvfølgelig kunne jeg gjort dette
$('button[type!=submit]').click(function(event) { event.stopPropagation(); });
Men finnes det en måte jeg kan stoppe tilbakeknappen fra å sende inn skjemaet uten JavaScript-tiltak?
For å være ærlig, brukte jeg bare en knapp slik at jeg kunne style den med jQuery UI. Jeg prøvde å kalle button() på linken, og det fungerte ikke som forventet (så ganske stygt ut!).
Svar #1
Standardverdien for type-attributtet til button-elementer er "submit". Sett den til type="button" for å lage en knapp som ikke sender inn skjemaet.
<button type="button">Submit</button>
I ordene til HTML-standarden: "Gjør ingenting."
Svar #2
button-elementet har en standardtype på submit.
Du kan få den til å ikke gjøre noe ved å sette en type button:
<button type="button">Cancel changes</button>
Svar #3
Bare bruk god gammel HTML:
<input type="button" value="Submit" />
Pakk det inn som emnet i en lenke, hvis du ønsker det:
<a href="http://somewhere.com"><input type="button" value="Submit" /></a>
Eller hvis du bestemmer deg for at du vil at JavaScript skal gi noen annen funksjonalitet:
<input type="button" value="Cancel" onclick="javascript: someFunctionThatCouldIncludeRedirect();"/>
Svar #4
Ja, du kan få en knapp til å ikke sende inn et skjema ved å legge til et attributt med typen verdien button:
<button type="button"><button>
