JavaScript tworzenie elementu

0

Hej wszystkim,

Tworzę formularz i napotkałem problem. Podczas wpisania złego emaila, mają wywołać się 2 funkcje: zmieniająca kolor tła i tworząca element z wiadomością. Funkcja z tłem działa, ale tworząca element już nie. Chodzi konkretnie o "CreateError".

https://codepen.io/natazar/pen/RmwJaj

Proszę o pomoc i wyjaśnienie czemu to nie działa.
Z góry dzięki!

2

Funkcja tworząca element «P» działa (jak się ją wywoła) i tworzy pusty paragraf.
Uwagi:

  • odpuść sobie tworzenie nowego elementu i daj po prostu odsłanianie gotowego, ukrytego Diva, bo obecnie działa ci to tak, że przy każdym uruchomieniu produkuje kolejny paragraf.
  • cała ta sekwencja testowania jest jakaś przekombinowana i o 3 w nocy się w tym zwyczajnie gubię, a ty już na pewno. Nie można dać w to miejsce normalnego formularza ze sztywnymi polami i nie utrudniać sobie życia?
1

Kontrolka <input type="text" placeholder="Username" required> ma type="text", co oznacza, że kod sprawdzający (poniżej tekstu //Check for validatation) wchodzi do pierwszego warunku -> wywołuje validateUser() -> wypisuje tekst do konsoli, zmienia kolor tła, wychodzi z validateUser() -> sprawdza pozostałe warunki, ale te oczywiście z uwagi na nieodpowiedni typ elementu HTML zwracają false -> wchodzi do else -> rusza elementem i kończy działanie.

Ty kod dodający element z komunikatem umieściłeś w wywołaniu funkcji w drugim warunku (w którym jest nieodpowiedni typ elementu HTML).

Mam nadzieję, że nie popełniłem błędu, bo robię to na sucho, bo debugger u mnie w Firefoksie ma pewne problemy.

2

A czy nie lepiej by było, zamiast wymyślać koło na nowo, skorzystać z gotowego rozwiązania wspieranego przez przeglądarkę?
https://www.w3schools.com/tags/att_input_type_email.asp - masz gotowe pole do wprowadzania adresu e-mail, przeglądarka pilnuje, żeby adres był poprawny w chwili wciśnięcia przycisku "wyślij", przez co nie musisz się niczym przejmować, całe sprawdzenie pozostaje po stronie przeglądarki. Nie pozwoli ona wysłać formularza dopóki adres e-mail nie będzie poprawny. Tobie pozostaje jedynie jakieś ostylowanie tego inputa, żeby wyglądem pasował do całości strony

1

Dziękuję za pomoc. Użyłem ukrytego diva jak mi doradzono i wszystko śmiga + nie jest przekombinowane.

1 użytkowników online, w tym zalogowanych: 0, gości: 1