Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Generator formularza HTML

Wpisz pola w liniach tekstu i skopiuj kod formularza z etykietami, walidacją HTML5, wybranym układem i podglądem.

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}

Wzór: Etykieta; typ; nazwa; reguły; opcje. Reguły oddzielaj pionową kreską (required|minlength:2), opcje listy i grup przecinkiem (Oferta, Wsparcie, Inne). Pustą nazwę utworzymy z etykiety. Typy i reguły są w ściądze pod narzędziem.

1–4, tylko dla układu „Siatka”.

Pola formularza

3

Wymagane

3

Rozmiar kodu

560 B

Linie kodu

15

Kod HTML formularza

<form id="contact" action="/submit" method="post"> <div class="form-group"> <label for="field-name">Imię</label> <input type="text" id="field-name" name="name" required minlength="2"> </div> <div class="form-group"> <label for="field-email">Email</label> <input type="email" id="field-email" name="email" required> </div> <div class="form-group"> <label for="field-message">Wiadomość</label> <textarea id="field-message" name="message" rows="4" required></textarea> </div> <button type="submit">Wyślij</button> </form>

Podgląd niczego nie wysyła. Kliknij w nim przycisk z pustymi polami, a zobaczysz komunikaty walidacji przeglądarki.

Ściąga: typy pól

Typy pól obsługiwane przez generator
TypCo powstajePrzykład linii
text Pole tekstowe w jednej linii Imię; text; name; required
email Adres e-mail, przeglądarka sprawdza format Email; email; email; required
tel Telefon, na komórce klawiatura numeryczna Telefon; tel; phone; autocomplete:tel
number, range Liczba albo suwak z min, max i step Ilość; number; qty; min:1|max:10
date, time, datetime-local, month Wybór daty lub godziny w przeglądarce Termin; date; date; required
password Hasło (znaki ukryte) Hasło; password; password; required|minlength:8
url, search, color Adres WWW, wyszukiwarka, wybór koloru Strona WWW; url; website
file Wysyłka pliku, dodaje enctype="multipart/form-data" CV; file; cv; required
textarea Pole wieloliniowe Wiadomość; textarea; message; rows:6|maxlength:1000
select Lista rozwijana z opcjami Temat; select; topic; required; Oferta, Wsparcie, Inne
radio Pojedyncze pole albo grupa jednokrotnego wyboru Ocena; radio; rating; required; Dobrze, Średnio, Źle
checkbox Zgoda albo grupa wielokrotnego wyboru (name[]) Zgoda; checkbox; consent; required

Ściąga: reguły walidacji

Reguły wpisywane w czwartej części linii
RegułaAtrybut HTMLGdzie działa
required required Wszystkie pola (w grupie checkboxów pomijana)
minlength:2, maxlength:100 minlength, maxlength text, email, tel, url, password, search, textarea
min:1, max:10, step:0,5 min, max, step number, range, date, time, month, datetime-local
pattern:[0-9]{2}-[0-9]{3} pattern text, email, tel, url, password, search; wpisuj jako ostatnią
placeholder:Jan Kowalski placeholder Pola tekstowe, number, textarea
autocomplete:email autocomplete Pola tekstowe i select
rows:6 rows textarea
multiple multiple select, file, email

Walidacja w przeglądarce to wygoda, nie ochrona

Atrybuty required, minlength czy pattern sprawdza przeglądarka przed wysłaniem. Da się je łatwo obejść, np. wysyłając żądanie bez formularza, więc te same reguły trzeba sprawdzić na serwerze. novalidate wyłącza sprawdzanie w przeglądarce; przydaje się, gdy walidację robi własny skrypt.

Etykiety i autouzupełnianie

Każde pole dostaje <label for> powiązany z id: czytnik ekranu odczyta nazwę pola, a kliknięcie etykiety ustawi w nim kursor. Reguła autocomplete (np. email, tel, given-name, new-password) pomaga przeglądarce i menedżerom haseł podpowiadać właściwe dane.

GET czy POST

GET dopisuje dane do adresu strony (?q=…), więc pasuje do wyszukiwarek i filtrów. POST wysyła dane w treści żądania: używaj go w formularzach kontaktowych, logowaniu i wszędzie, gdzie coś się zapisuje. Pliki wysyła się tylko metodą POST z enctype="multipart/form-data"; generator dodaje go sam przy polu file.

Czego kod nie zawiera

Wygenerowany kod to sam HTML. Obsługę wysyłki (zapis, e-mail) musisz mieć na serwerze pod adresem z action. W aplikacji z sesją dodaj token CSRF (w Laravelu @csrf), a przeciw spamowi np. ukryte pole-pułapkę lub CAPTCHA.

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Generator formularza HTML

Generator formularza HTML zamienia listę pól wpisaną w liniach tekstu na gotowy kod <form>: z etykietami powiązanymi z polami, atrybutami walidacji HTML5, adresem action, metodą GET lub POST i przyciskiem wysyłki. Pod kodem widać działający podgląd, w którym sprawdzisz komunikaty walidacji przeglądarki.

Na start możesz wybrać jeden z sześciu szablonów: kontakt, newsletter, logowanie, rejestracja, zamówienie i ankieta. Jeden formularz mieści do 60 pól.

Typy pól

TypZastosowanie
text, email, tel, url, searchdane kontaktowe, adresy, wyszukiwarka
passwordhasła (znaki ukryte)
number, rangeliczby i suwak z zakresem
date, time, datetime-local, monthdaty i godziny
textareadłuższe wypowiedzi
select, checkbox, radiowybór opcji z listy lub grupy
file, colorwysyłka plików, wybór koloru

Nieznany typ generator zamienia na text i pokazuje uwagę z numerem linii, więc literówka nie psuje całego formularza.

Walidacja formularza HTML5

Atrybuty required, minlength, maxlength, min, max, step i pattern sprawdzają dane w przeglądarce przed wysłaniem. To pierwsza linia obrony – serwer musi walidować ponownie. Opcja novalidate wyłącza sprawdzanie w przeglądarce, co przydaje się, gdy walidację przejmuje własny skrypt. Oprócz reguł walidacji możesz dopisać placeholder, autocomplete, rows (wysokość textarea) i multiple.

Format definicji pola

Każda linia to etykieta; typ; nazwa; reguły; opcje, np. Email; email; email; required|autocomplete:email. Reguły rozdzielaj pionową kreską, a wartość reguły podawaj po dwukropku (minlength:2). Piąta część to opcje dla select, radio i checkbox, rozdzielone przecinkiem. Obowiązkowa jest tylko etykieta: pusty typ oznacza text, a pustą nazwę narzędzie tworzy z etykiety bez polskich znaków (z „Imię i nazwisko” powstaje imie_i_nazwisko).

Jak działa generator formularza HTML

Generator czyta tekst linia po linii i dzieli każdą linię średnikami. Etykieta staje się tekstem widocznym dla użytkownika, nazwa trafia do atrybutu name, czyli do danych wysyłanych na serwer, a reguły zamieniają się na atrybuty pola. Każde pole dostaje <label for> powiązany z identyfikatorem field-nazwa, więc kliknięcie etykiety ustawia kursor w polu, a czytnik ekranu odczytuje jego nazwę.

Pola z opcjami działają inaczej niż pojedyncze. Lista select dostaje pustą pierwszą pozycję „— wybierz —”, dzięki której required wymusza świadomy wybór; bez opcji generator wstawia „Opcja 1” i „Opcja 2” i ostrzega o tym. Grupa radio lub checkbox z opcjami trafia do <fieldset> z <legend>, a nazwa grupy checkboxów dostaje końcówkę [], żeby backend odebrał wszystkie zaznaczone wartości. Przy polu file formularz dostaje sam enctype="multipart/form-data".

Do wyboru są trzy układy: pionowy (etykieta nad polem), poziomy (etykieta w kolumnie o szerokości 120–200 px obok pola) i siatka z 1–4 kolumnami, w której przycisk zajmuje całą szerokość. Opcjonalnie dołączysz prosty CSS przypisany do identyfikatora formularza: formularz o szerokości do 640 px, pola na całą jego szerokość, a w układzie poziomym i siatce jedna kolumna na ekranach węższych niż 600 px. Nad kodem narzędzie pokazuje liczbę pól, pól wymaganych, rozmiar kodu w bajtach i liczbę linii, a pod nimi uwagi do sprawdzenia, np. powtórzoną nazwę pola, pusty action albo plik wysyłany metodą GET.

Przykład krok po kroku

  1. Wypisz pola formularza kontaktowego: imię, e-mail, telefon, wiadomość i zgoda. To 5 linii definicji.
  2. Wpisz linie z typami i regułami: Imię; text; imie; required|minlength:3|maxlength:40, Email; email; email; required|autocomplete:email, Telefon; tel; telefon; autocomplete:tel|pattern:[0-9]{9}, Wiadomość; textarea; wiadomosc; maxlength:500|rows:6, Zgoda na kontakt; checkbox; zgoda; required. Progi 3, 40 i 500 to przykładowe wartości – narzędzie nie narzuca własnych.
  3. Policz atrybuty walidacji: 3 w polu imienia i po 1 w czterech pozostałych, razem 7. autocomplete i rows nie walidują, tylko podpowiadają dane i ustawiają wysokość pola.
  4. Wygeneruj kod. Kafelki pokażą 5 pól, 3 wymagane (imię, e-mail, zgoda) i 23 linie kodu bez CSS: znacznik <form>, po 4 linie na każde pole, przycisk i zamknięcie formularza.
  5. Wybierz układ. W siatce z 2 kolumnami 5 pól ułoży się w 3 rzędy (2 + 2 + 1), a przycisk trafi pod nie na całą szerokość.
  6. Wpisz w ustawieniach adres action, np. /kontakt, zostaw metodę POST i sprawdź w podglądzie, co się stanie po kliknięciu przycisku z pustymi polami. Obsługę wysyłki, ponowną walidację i token CSRF dodaj po stronie serwera.

Gotowe linie dla typowych pól

PoleLinia definicjiCo sprawdzi przeglądarka
Kod pocztowyKod pocztowy; text; kod; required|autocomplete:postal-code|pattern:[0-9]{2}-[0-9]{3}format 00-000
Telefon (9 cyfr)Telefon; tel; telefon; autocomplete:tel|pattern:[0-9]{9}dokładnie 9 cyfr bez spacji
NIPNIP; text; nip; pattern:[0-9]{10}10 cyfr, bez sumy kontrolnej
Hasło przy rejestracjiHasło; password; haslo; required|minlength:8|autocomplete:new-passwordco najmniej 8 znaków
Ilość sztukIlość; number; ilosc; required|min:1|max:10liczba od 1 do 10
Kwota z groszamiKwota; number; kwota; min:0|step:0,01liczba nieujemna z krokiem 0,01
Godzina wizytyGodzina; time; godzina; min:08:00|max:16:00godzina między 8:00 a 16:00
Temat wiadomościTemat; select; temat; required; Oferta, Wsparcie, Innewybór jednej opcji
ZainteresowaniaZainteresowania; checkbox; tematy; ; SEO, Grafika, Hostingnic, wybór jest dobrowolny

Przecinek w step:0,01 generator zamienia na kropkę, bo tylko taki zapis rozumie przeglądarka. Przeglądarka dopasowuje pattern do całej wartości, więc [0-9]{9} odrzuci zarówno 8, jak i 10 cyfr.

Praktyczne wskazówki

  • Nazwy pól zapisuj bez spacji i polskich znaków. Atrybut name trafia do zapytania i do kodu backendu, więc imie i wiadomosc działają przewidywalniej niż wersje z ogonkami; przy spacji w nazwie generator pokaże uwagę.
  • Etykietę pisz po polsku i konkretnie, bo widzi ją użytkownik. Nazwę trzymaj techniczną i krótką, bo widzi ją serwer.
  • Każda nazwa powinna wystąpić raz. Przy powtórce zdublują się identyfikatory pól, a PHP odczyta tylko ostatnią wartość.
  • Zaczynaj od pól najłatwiejszych. Krótkie pole tekstowe obniża próg wejścia, a pytania wymagające namysłu przenieś na koniec.
  • Bez dołączonego CSS układ pionowy zależy od stylów twojej strony: etykieta i pole są elementami liniowymi i bez reguły display: block mogą stanąć obok siebie.
  • pattern wpisuj jako ostatnią regułę, bo wyrażenie regularne może zawierać pionową kreskę. Przetestuj je w podglądzie na poprawnej wartości, wartości z myślnikami i ciągu zupełnie niepasującym.
  • Nowe przeglądarki interpretują pattern w trybie flagi v, w którym myślnik i nawiasy wewnątrz klasy znaków trzeba poprzedzić ukośnikiem. Zapis [0-9 +-] bywa przez to odrzucony i pole przestaje być sprawdzane.

Czego narzędzie nie uwzględnia

  • Logiki warunkowej. Generator nie pokazuje ani nie ukrywa pól w zależności od wcześniejszych odpowiedzi; taki formularz wymaga własnego JavaScriptu.
  • Obsługi wysyłki i tokena CSRF. Kod zawiera action i metodę, ale odbiór danych, zapis i wysłanie e-maila musi zrobić serwer, który generuje też ukryte pole z tokenem.
  • Kontroli poprawności pattern. Źle napisane wyrażenie regularne przejdzie do kodu bez ostrzeżenia i zacznie blokować poprawne dane albo przepuszczać błędne.
  • Sum kontrolnych i ochrony przed spamem. NIP czy PESEL sprawdzisz w przeglądarce tylko co do długości i cyfr, a przeciw botom potrzebne jest ukryte pole-pułapka lub CAPTCHA.
  • Wymagania zaznaczenia w grupie checkboxów. Przeglądarka nie wymusi wyboru co najmniej jednej opcji, dlatego generator usuwa tam required i ostrzega, że trzeba to sprawdzić na serwerze.

Najczęstsze pytania o formularz HTML

Czy walidacja HTML5 wystarczy?

Nie. Żądanie można wysłać z pominięciem formularza, więc każdą regułę trzeba powtórzyć na serwerze przed zapisem danych.

Czy dostanę gotowy formularz kontaktowy w HTML?

Szablon „Kontakt” daje pola imienia, e-maila i wiadomości z walidacją, adresem wysyłki i przyciskiem. Do działania potrzebny jest jeszcze skrypt na serwerze pod adresem z action, który zapisze wiadomość albo prześle ją e-mailem.

Jak wpisać kilka reguł dla jednego pola?

Rozdziel je pionową kreską w czwartej części linii, np. required|minlength:2|maxlength:100. Pusta czwarta część oznacza pole bez walidacji.

Jak zrobić grupę radio lub checkbox?

Wystarczy jedna linia z opcjami po przecinku w piątej części, np. Ocena; radio; ocena; required; Dobrze, Średnio, Źle. Generator zbuduje z niej <fieldset> z osobnym polem dla każdej opcji i wspólną nazwą.

Jak dodać token CSRF?

Token generuje backend, więc dopisz go po wklejeniu kodu do szablonu aplikacji, np. w Laravelu dyrektywą @csrf wewnątrz formularza.

Czy mogę użyć polskich znaków w etykiecie?

Tak, etykieta jest tylko tekstem widocznym dla użytkownika. Nazwę pola lepiej zapisać bez ogonków i spacji; jeśli ją pominiesz, generator utworzy ją z etykiety w takiej właśnie formie.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!