• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Walidacja formularza

Object Storage Arubacloud
0 głosów
273 wizyt
pytanie zadane 6 października 2018 w JavaScript przez Sobol3k Użytkownik (690 p.)
edycja 6 października 2018 przez ScriptyChris
// pobieram wartości pól z formularza
      let name = document.querySelector('.name');
      let surname = document.querySelector('.surname');
      let email = document.querySelector('.email');
      let text = document.querySelector('.text');
      let btn = document.querySelector('.confirm');
      
      //sprawdzam dane
      btn.addEventListener("click", function(){
        let getLengthOfName = name.value.length;
        let getLengthOfSurname = surname.value.length;
        let getLengthOfEmail = email.value.length;
        let getLengthOfText = text.value.length;
          
          //imie i nazwisko z duzych liter
          name = name.charAt(0).toUpperCase() + name.slice(1);
          surname = surname.charAt(0).toUpperCase() + surname.slice(1);
        
          //sprawdzam poprawnosc danych podanych przez usera
          function checkForm(a,b,c,d){
              if(a < 3) alert('Twoje imię musi zawierać minimum 3 znaki');
              if(b < 3) alert('Twoje nazwisko musi zawierac minimum 3 znaki');
              if(c < 10 || getLengthOfEmail.indexOf('@') < -1) alert('Podałeś niepoprawny adres e-mail');
              if(d < 10) alert('Wiadomość musi zawierać minimum 10 znaków');
          }
          //wywołanie funkcji
          checkForm(getLengthOfName, getLengthOfSurname, getLengthOfEmail, getLengthOfText);
      });


Dostaje dziwny error w postaci: Uncaught TypeError: name.charAt is not a function
    at HTMLButtonElement.<anonymous>, twierdzi że nie jest funkcja? Niby dlaczego skoro to jest metoda(funkcja) wykonywana na stringu?

1 odpowiedź

+2 głosów
odpowiedź 6 października 2018 przez thryndl Nałogowiec (30,470 p.)

Niby dlaczego skoro to jest metoda(funkcja) wykonywana na stringu?

Dokładnie na stringu. I o ile się nie mylę, to w momencie wywołania tej metody, nie wywołujesz jej na łańcuchu znaków, a tagu HTML, który dostajesz z querySelectora. 

name = name.charAt(0).toUpperCase() + name.slice(1);

// trzeba najpierw wyciągnąć wartość

name = name.value.charAt(0).toUpperCase() + name.value.slice(1);

 

Podobne pytania

0 głosów
2 odpowiedzi 1,475 wizyt
pytanie zadane 18 października 2018 w JavaScript przez drraco Początkujący (370 p.)
0 głosów
0 odpowiedzi 260 wizyt
pytanie zadane 8 maja 2018 w JavaScript przez XDdomino Użytkownik (680 p.)
0 głosów
1 odpowiedź 230 wizyt
pytanie zadane 17 kwietnia 2018 w JavaScript przez Catalonya1992 Mądrala (5,440 p.)

92,757 zapytań

141,679 odpowiedzi

320,437 komentarzy

62,101 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...