Menu

Typy input w HTML: wszystkie 22 typy znacznika input

Wszystkie typy znacznika HTML <input> w jednym miejscu: text, email, password, number, range, data i czas, color, file, hidden i reszta, z tym, co każdy waliduje, jaką klawiaturę otwiera na telefonie i jakie atrybuty są wspólne.

Na tej stronie są działające edytory: edytuj, uruchamiaj i od razu zobacz wynik.

Znacznik input i jego typy

<input> to pole formularza, a jego atrybut type decyduje o rodzaju pola. Ten sam znacznik tworzy pole tekstowe, suwak, wybór daty albo wybór koloru. Wypróbuj każde pole poniżej i naciśnij Submit, żeby zobaczyć, co wysyła formularz:

<input> to element pusty, więc nie ma znacznika zamykającego. Jego name to klucz, pod którym wysyłana jest wartość, a value to wartość początkowa. Brakujący lub błędnie wpisany type daje zwykłe pole tekstowe.

Wszystkie typy input w HTML

typeCo to jestUwagi
textJedna linia tekstuTyp domyślny
passwordTekst wyświetlany jako kropkiSam z siebie nie jest szyfrowany; wysyłaj go przez HTTPS
emailAdres e-mailWaliduje format; klawisz @ na klawiaturze telefonu
urlAdres internetowyMusi zaczynać się od schematu, np. https://
telNumer telefonuKlawiatura numeryczna na telefonie, bez sprawdzania formatu
searchPole wyszukiwaniaCzęsto pokazuje przycisk czyszczenia
numberLiczbaPrzyciski strzałek, min, max, step
rangeSuwakZ założenia nieprecyzyjny; wartość to liczba
dateDataWartość to YYYY-MM-DD
timeGodzinaWartość to HH:MM (format 24-godzinny)
datetime-localData i godzina, bez strefy czasowejWartość to YYYY-MM-DDTHH:MM
monthRok i miesiącNie każda przeglądarka go obsługuje
weekRok i numer tygodniaNie każda przeglądarka go obsługuje
colorWybór koloruWartość to #rrggbb małymi literami
checkboxPole włącz/wyłączZobacz checkbox w HTML
radioJeden wybór z grupyZobacz przyciski radio w HTML
fileWybór plikuaccept, multiple
hiddenWartość wysyłana, ale niewidocznaNa identyfikatory i tokeny
submitPrzycisk wysyłania<button type="submit"> jest bardziej elastyczny
resetPrzycisk resetuRzadko dobry pomysł
buttonPrzycisk, który sam nic nie robiDo JavaScriptu
imagePrzycisk wysyłania w postaci obrazkaWysyła też współrzędne kliknięcia

Typy tekstowe i klawiatury telefonów

email, url, tel, search i text na komputerze wyglądają jak zwykłe pole tekstowe. Różnią się walidacją i tym, jaka klawiatura otwiera się na telefonie. Obramowanie w tym przykładzie robi się zielone lub czerwone zależnie od oceny wartości przez przeglądarkę:

  • ada@example to dla przeglądarki poprawny e-mail: sprawdza tylko tekst, @ i domenę, a nie to, czy domena ma kropkę. Prawdziwe sprawdzenie odbywa się na serwerze.
  • example.com nie jest poprawnym url, bo nie ma schematu. https://example.com jest.
  • tel przyjmuje wszystko. Formaty numerów telefonów za bardzo różnią się między krajami, więc nie ma wbudowanego sprawdzania; dodaj pattern, jeśli go potrzebujesz.
  • inputmode="numeric" prosi telefony o klawiaturę z cyframi bez problemów, jakie daje type="number", dlatego to właściwy wybór dla kodów pocztowych, kodów jednorazowych i numerów kart.

number i range

Oba przyjmują min, max i step. number służy do dokładnych wartości; range to suwak dla wartości, w których dokładna liczba ma mniejsze znaczenie. Suwak nie pokazuje liczby, więc połącz go z <output>:

Dla number wartość domyślna step to 1, więc pole ceny bez step="0.01" odrzuca 4.99 przy wysyłaniu formularza. W JavaScripcie input.value to zawsze ciąg znaków; aby dostać liczbę, użyj input.valueAsNumber.

Daty i godziny

Typy daty i czasu otwierają wbudowany selektor przeglądarki. To, co widzi użytkownik, zależy od jego ustawień regionalnych (09/24/2026, 24.09.2026), ale wartość zawsze ma ten sam stały format:

Ten stały format otrzymuje serwer i odczytuje JavaScript, więc nigdy nie musisz parsować "24.09.2026". min i max przyjmują ten sam format. datetime-local nie ma strefy czasowej: jeśli ma ona znaczenie, przelicz ją na serwerze według strefy użytkownika.

color i file

accept="image/*" ogranicza wybór plików do obrazków (i na telefonach proponuje aparat); przyjmuje też rozszerzenia, np. accept=".pdf,.docx". To tylko wskazówka dla okna wyboru, więc typ pliku sprawdzaj na serwerze. multiple pozwala wybrać kilka plików. Prawdziwe przesyłanie wymaga też na formularzu method="post" i enctype="multipart/form-data".

Podpowiedzi z datalist

<datalist> daje polu tekstowemu listę podpowiedzi, a jednocześnie pozwala wpisać dowolną wartość. Połącz je atrybutem list:

Wpisz w pole "ja", żeby zobaczyć pasujące podpowiedzi. W przeciwieństwie do listy select użytkownik może wpisać wartość, której nie ma na liście.

Atrybuty pól input

AtrybutDziałanie
nameKlucz, pod którym wysyłana jest wartość
valueWartość początkowa
placeholderPodpowiedź widoczna, gdy pole jest puste (nie etykieta)
requiredMusi być wypełnione przed wysłaniem
disabledNie da się go użyć i nie jest wysyłane
readonlyNie da się go edytować, ale jest wysyłane
autocompleteCo ma się uzupełniać automatycznie: email, name, current-password, one-time-code, off
min, max, stepOgraniczenia dla liczb, suwaków, dat i godzin
minlength, maxlengthOgraniczenia długości dla typów tekstowych
patternWyrażenie regularne, do którego musi pasować cała wartość
inputmodeJaką klawiaturę pokazać na telefonie: numeric, decimal, email, tel, url
listid elementu <datalist>
multipleKilka wartości, dla email i file
acceptTypy plików dla file

Częste błędy

  • type="number" dla numerów telefonów, kodów pocztowych lub numerów kart. To nie są ilości. Użyj tel albo text z inputmode="numeric".
  • Pole ceny bez step="0.01". Wartości dziesiętne nie przechodzą walidacji.
  • placeholder jako etykieta. Znika, gdy tylko użytkownik zacznie pisać.
  • Poleganie na accept lub type="email" w kwestii bezpieczeństwa. To udogodnienia; serwer sprawdza jeszcze raz.
  • type="month" lub type="week" bez rozwiązania zapasowego. Niektóre przeglądarki pokazują zwykłe pole tekstowe.
  • Znacznik zamykający </input>. <input> jest pusty.

Najczęściej zadawane pytania

Ile jest typów input w HTML?

22: button, checkbox, color, date, datetime-local, email, file, hidden, image, month, number, password, radio, range, reset, search, submit, tel, text, time, url i week. Nieznany lub brakujący typ działa jak text.

Jaki jest domyślny typ input w HTML?

text. <input> bez type albo z typem, którego przeglądarka nie zna, to jednoliniowe pole tekstowe.

Czy używać type="number" dla numerów telefonów lub kodów pocztowych?

Nie. number służy do ilości: dodaje przyciski strzałek i odrzuca +, spacje i myślniki, które zawierają numery telefonów. Dla numerów telefonów używaj type="tel", a dla kodów, takich jak kody pocztowe i numery kart, type="text" z inputmode="numeric".

Jakiego formatu używa input type date?

Wartość to zawsze YYYY-MM-DD, np. 2026-09-24, niezależnie od formatu, który użytkownik widzi na ekranie. Wyświetlanie zależy od ustawień regionalnych użytkownika; wysyłana wartość i wartość w skryptach już nie.

Czy znacznik input potrzebuje znacznika zamykającego?

Nie. <input> to element pusty: pisz <input type="text" name="city">. Zamykające </input> jest niepoprawne, a samozamykający ukośnik w <input /> jest dozwolony, ale nic nie robi.

Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ