input type="submit"
i czy button
są one wymienne? lub jeśli jest jakaś różnica, to kiedy input type="submit"
i kiedy użyć button
?
A jeśli nie ma różnicy, to dlaczego mamy 2 tagi do tego samego celu?
html
accessibility
w3c
web-standards
semantic-markup
Jitendra Vyas
źródło
źródło
button
avalue
atrybut w niektórych wersjach IEinput
wyśle po prostu to, czego się spodziewałeś, niektóre wersje IE nie działają dobrze zbutton
s.input type="button"
vsbutton type=button
: stackoverflow.com/questions/469059/...Odpowiedzi:
http://www.w3.org/TR/html4/interact/forms.html#h-17.5
Tylko pod względem funkcjonalności są one wymienne!
(Nie zapomnij, że
type="submit"
jest to ustawienie domyślnebutton
, więc zostaw to!)źródło
type="submit"
przycisku, ponieważ domyślnietype
jest tosubmit
.type
domyślna była wartość domyślnabutton
. Wolę wyraźnie określić każdy atrybut, aby uniknąć niespójności przeglądarki.To
<input type="button">
tylko przycisk i sam nic nie zrobi.<input type="submit">
, Gdy wewnątrz elementu formularza, będzie przesłać formularz po kliknięciu.Kolejnym przydatnym „specjalnym” przyciskiem jest ten
<input type="reset">
, który wyczyści formularz.źródło
<input>
i<button>
tagów. W<input>
swojej odpowiedzi podałeś przydatne informacje , ale brakuje w tym<button>
boku.Użyj tagu <button> zamiast <input type = "button" ..> . Jest to zalecana praktyka w bootstrap 3.
http://getbootstrap.com/css/#buttons-tags
źródło
button
jest o wiele bardziej jednoznaczny i zawieraaria
funkcje ułatwień dostępu oraz jest o wiele łatwiejszy do stylizacji. Jest również przyszłościowy, ponieważ jest HTML5.Chociaż oba elementy zapewniają funkcjonalnie ten sam wynik *, zdecydowanie zalecamy użycie
<button>
:input
sugeruje, że formant jest edytowalny lub może być edytowany przez użytkownika;button
jest o wiele bardziej wyraźny pod względem celu, któremu służyinput[type="submit"]
w niektórych przypadkach nie wyświetlają się poprawniePOST
/GET
do serwera* Z wyjątkiem którego domyślnie nie ma określonego zachowania.
<button type="button">
Podsumowując, bardzo odradzam korzystanie z
<input type="submit" />
.źródło
<input type='submit' />
nie obsługuje HTML, ponieważ jest to pojedynczy samozamykający się tag.<button>
Z drugiej strony, obsługuje HTML, obrazy, itp wewnątrz bo to parę tag:<button><img src='myimage.gif' /></button>
.<button>
jest również bardziej elastyczny, jeśli chodzi o styl CSS.Wadą
<button>
jest to, że nie jest w pełni obsługiwany przez starsze przeglądarki. Na przykład IE6 / 7 nie wyświetla go poprawnie.Chyba że masz jakiś konkretny powód, prawdopodobnie najlepiej się trzymać
<input type='submit' />
.źródło
<input type="submit" value="Log In" />
<button>
na korzyść czegoś nowego. Czy to oznacza, że w ogóle nie powinniśmy wspominać o konkretnym tagu, ponieważ może on ulec zmianie w przyszłości? Wolę pozostawić to ćwiczenie czytelnikowi w celu ustalenia, w jaki sposób odpowiedzi odnoszą się do ich sytuacji. Tak długo, jak informacje są cenne dla czytelnika, nie widzę problemu z ich włączeniem.Zdaję sobie sprawę, że to stare pytanie, ale znalazłem je na mozilla.org i myślę, że to dotyczy.
https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Forms/My_first_HTML_form#And_a_<button>_to_finish
źródło
<button type="button">
aby przesunąć suwak / karuzelę do następnego slajdu.<button>
jest nowszy niż<input type="submit">
, jest bardziej semantyczny, łatwy do stylizacji i obsługuje HTML w nim.źródło
Podczas gdy pozostałe odpowiedzi są świetne i odpowiedzą na pytanie, jest jedna rzecz do rozważenia podczas używania
input type="submit"
ibutton
. Nieinput type="submit"
możesz użyć pseudoelementu CSS na wejściu, ale możesz użyć przycisku!Jest to jeden z powodów, dla których należy zastosować
button
element nad wejściem, jeśli chodzi o stylizację.źródło
Nie wiem, czy to błąd, czy funkcja, ale znalazłem bardzo ważną (przynajmniej w niektórych przypadkach) różnicę:
<input type="submit">
tworzy parę klucz-wartość w twoim żądaniu i<button type="submit">
nie robi tego. Testowane w Chrome i Safari.Więc jeśli masz w formularzu wiele przycisków przesyłania i chcesz wiedzieć, który został kliknięty - nie używaj
button
, użyjinput type="submit"
zamiast tego.źródło
Jeśli mówisz o tym
<input type=button>
, formularz nie zostanie automatycznie przesłanyjeśli mówisz o
<button>
tagu, jest on nowszy i nie przesyła się automatycznie we wszystkich przeglądarkach.Podsumowując, jeśli chcesz, aby formularz był przesyłany po kliknięciu we wszystkich przeglądarkach, użyj
<input type="submit">
źródło
<button type="submit">
do automatycznego przesyłania formularzy.