Warunkowa blokada wysyłki formularza
Treść zadania
Formularz zapisu na warsztaty ma pola #poleImie i #poleEmail oraz akapit #komunikat. Na zdarzeniu submit sprawdź dane i zachowaj się różnie w zależności od wyniku:
- Jeżeli imię jest puste albo e-mail nie zawiera
@, wywołajevent.preventDefault(), wpisz w komunikacieBłąd: popraw imię lub e-mail.i zakończ funkcję. - Jeżeli dane są poprawne, wpisz
Dane poprawne — formularz został wysłany.i nie blokuj domyślnej wysyłki.
Formularz nie ma ustawionego action, więc w podglądzie poprawna wysyłka może przeładować ramkę. Testy sprawdzają samo zdarzenie submit, bez przeładowania strony.
Co będzie oceniane
- Zablokowanie wysyłki tylko przy błędnych danych.
- Komunikat błędu dla pustego imienia lub adresu bez znaku @.
- Brak blokady i komunikat sukcesu dla poprawnych danych.
- Wykorzystanie zdarzenia submit oraz event.preventDefault() w właściwym miejscu.
- Kod uruchamia się bez błędu i przechodzi wszystkie testy automatyczne.
Testy automatyczne (2)
- Błędny e-mail blokuje wysyłkę — tekst #komunikat = Błąd: popraw imię lub e-mail.; zablokowany = tak
- Poprawne dane przechodzą do wysyłki — tekst #komunikat = Dane poprawne — formularz został wysłany.; zablokowany = nie
Zaliczenie: wszystkie testy muszą przejść. Testy uruchamia się przyciskiem „Sprawdź testy” pod kodem.
// Zablokuj wysyłkę tylko wtedy, gdy dane są błędne
Wskazówki
Wskazówka 1
Nie wywołuj event.preventDefault() na początku funkcji. Umieść je dopiero w gałęzi, w której dane są błędne.
Wskazówka 2
Warunek błędu może wyglądać tak: imie.value.trim() === '' || !email.value.includes('@'). Po komunikacie błędu użyj return;, aby nie wykonywać dalszej części.