HTML Academy · Lekcja

required pattern min max i maxlength

Dodawanie wbudowanych ograniczeń walidacji do pól formularza

Lekcja 1 z 414 kroki

required pattern min max i maxlength to bezpłatna lekcja HTML Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej HTML Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs HTML Academy zawiera 4 lekcji w sumie.

Walidacja formularzy w HTML5

HTML5 dodał wbudowaną walidację formularzy — JavaScript nie jest wymagany:

  • Przeglądarki sprawdzają ograniczenia przed wysłaniem formularza
  • Komunikaty o błędach są automatycznie wyświetlane przez przeglądarkę
  • Działa z pseudoklasami CSS :valid / :invalid

required

Atrybut required uniemożliwia wysłanie formularza, jeśli pole jest puste:

<label for="email">Email (required)</label>
<input type="email" id="email" name="email" required>
<!-- Empty on submit → browser shows "Please fill in this field" -->
<!-- Also: field is :invalid until filled -->

pattern

Atrybut pattern sprawdza tekst względem wyrażenia regularnego:

<label for="username">Username (letters and numbers only)</label>
<input
  type="text"
  id="username"
  name="username"
  pattern="[a-zA-Z0-9]{3,20}"
  title="3-20 letters and numbers"
>
<!-- pattern anchored at both ends automatically -->
<!-- title provides the error message hint -->

Typowe przykłady pattern

Przydatne wzorce regex dla pól formularza:

<!-- Phone: digits, spaces, hyphens -->
<input type="tel" pattern="[0-9 ()+-]{7,20}">

<!-- Postal code: US zip code -->
<input type="text" pattern="[0-9]{5}(-[0-9]{4})?">

<!-- Password: min 8 chars, one uppercase, one digit -->
<input type="password" pattern="(?=.*[A-Z])(?=.*[0-9]).{8,}">

<!-- Twitter handle: -->
<input type="text" pattern="@?[A-Za-z0-9_]{1,15}">

min i max

Ogranicz wartości pól liczbowych, daty i zakresu:

<!-- Number range -->
<input type="number" name="qty" min="1" max="100">

<!-- Date range -->
<input type="date" name="checkin" min="2025-01-01" max="2025-12-31">

<!-- Range slider -->
<input type="range" name="volume" min="0" max="100" step="5">

<!-- Time -->
<input type="time" name="meeting" min="09:00" max="17:00">

maxlength i minlength

Kontroluj długość wprowadzanych danych tekstowych:

<input type="text" name="username" minlength="3" maxlength="20">
<!-- minlength: minimum number of characters required -->
<!-- maxlength: maximum characters allowed (browser enforces hard stop) -->

<textarea name="bio" minlength="50" maxlength="500"></textarea>
<!-- Same attributes work on textarea -->

step

Atrybut step określa prawidłowe przyrosty dla pól liczbowych i pól zakresu:

<input type="number" name="price" min="0" step="0.01">
<!-- Accepts decimal prices: 0.00, 0.01, 4.99, etc. -->

<input type="number" name="qty" min="0" step="5">
<!-- Only multiples of 5: 0, 5, 10, 15... -->

<input type="range" min="0" max="100" step="10">
<!-- Snaps to: 0, 10, 20, ..., 100 -->

CSS :valid i :invalid

Styluj pola na podstawie ich stanu walidacji:

input:valid {
  border-color: #22c55e;   /* green when valid */
}

input:invalid {
  border-color: #ef4444;   /* red when invalid */
}

/* Avoid showing :invalid on page load (before user interaction): */
input:not(:placeholder-shown):invalid {
  border-color: #ef4444;
}
/* Only show invalid style after user has typed something */

title dla niestandardowych komunikatów o błędach

Atrybut title wyświetla wskazówkę w komunikacie błędu walidacji przeglądarki:

<input
  type="text"
  pattern="[A-Za-z]{2,3}"
  title="Enter a 2 or 3 letter country code (e.g. US, GB, DEU)"
  name="country-code"
>
<!-- Browser shows the title text alongside the default error message -->

Łączenie ograniczeń

Wiele atrybutów walidacji współdziała ze sobą:

<input
  type="text"
  name="username"
  required
  minlength="3"
  maxlength="20"
  pattern="[a-z][a-z0-9_]*"
  title="Lowercase letters, numbers, underscores. Must start with a letter."
>
<!-- All constraints must pass for the field to be :valid -->

novalidate i moment walidacji

Domyślnie walidacja jest uruchamiana podczas wysyłania formularza. Aby uruchamiać ją przy każdym zdarzeniu input:

<input type="email" id="email">

<script>
const input = document.getElementById('email');
input.addEventListener('blur', () => {
  // Check validity on blur (when user leaves field):
  if (!input.validity.valid) {
    input.reportValidity();
  }
});
</script>

Podsumowanie pseudoklas walidacji

Pseudoklasy CSS do walidacji formularzy:

  • :valid — walidacja ograniczeń zakończyła się pomyślnie
  • :invalid — co najmniej jedno ograniczenie nie zostało spełnione
  • :required — element ma atrybut required
  • :optional — element nie ma atrybutu required
  • :in-range — wartość mieści się w zakresie min/max
  • :out-of-range — wartość znajduje się poza zakresem min/max

Szybkie sprawdzenie

Jaki atrybut ogranicza maksymalną liczbę znaków w polu tekstowym?

Podsumowanie: atrybuty walidacji

Najważniejsze informacje o walidacji w HTML5:

  • required — pole musi zostać wypełnione
  • pattern — sprawdza wartość względem regex
  • min / max — ograniczenia wartości dla pól liczbowych, daty i zakresu
  • maxlength / minlength — ograniczenia liczby znaków
  • step — prawidłowe przyrosty
  • CSS :valid / :invalid do stylowania
Bezpłatny start

Ucz się HTML dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
40
Lekcje
159

Często zadawane pytania

Czy lekcja „required pattern min max i maxlength” jest bezpłatna?

Tak — pełny tekst „required pattern min max i maxlength” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu HTML Academy, przejdź na CoddyKit PRO. Kurs HTML Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „required pattern min max i maxlength”?

Dodawanie wbudowanych ograniczeń walidacji do pól formularza Ćwiczysz HTML Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć HTML Academy?

Nie wymagamy żadnego doświadczenia. HTML Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „required pattern min max i maxlength”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji HTML Academy?

Tak. Każda lekcja HTML Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. required pattern min max i maxlength
  2. Atrybut novalidate
  3. Podstawy Constraint Validation API
  4. Walidacja HTML5 a JavaScript — kompromisy
← Powrót do HTML Academy