• 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
263 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,435 wizyt
pytanie zadane 18 października 2018 w JavaScript przez drraco Początkujący (370 p.)
0 głosów
0 odpowiedzi 251 wizyt
pytanie zadane 8 maja 2018 w JavaScript przez XDdomino Użytkownik (680 p.)
0 głosów
1 odpowiedź 215 wizyt
pytanie zadane 17 kwietnia 2018 w JavaScript przez Catalonya1992 Mądrala (5,440 p.)

92,555 zapytań

141,403 odpowiedzi

319,554 komentarzy

61,940 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

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!

...