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

Skrypt Walidacji w JS

Object Storage Arubacloud
0 głosów
823 wizyt
pytanie zadane 12 września 2016 w JavaScript przez Damian Maksymilian B Nowicjusz (120 p.)
edycja 12 września 2016 przez Arkadiusz Waluk

Witam. Mam problem gdyż chce stworzyć skrypt który pozwoli wyłączyć w formularzu komunikat "Podana nazwa użytkownika lub hasło jest nieprawidłowe.Spróbuj ponownie." jeśli liczba znaków nie przekroczy 1 czyli jeśli będzie puste pole mam tutaj poniższy kod i nie wiem w czym tkwi problem. Proszę o pomoc.

       <script type="text/javascript">
            var modal = document.getElementById('LoginForm');
            
            var password = document.getElementsByName('password');
            
            var login = document.getElementsByName('login');
        
            var div = document.getElementsByClassName("form-error");
            
            window.length = function(event) {
                if(password.length==0 || login.length==0) {
                div.style.display = "none";
                }
            }
        </script>

 

2
komentarz 12 września 2016 przez niezalogowany
  1. Otwórz konsolę
  2. Popraw błędy z konsoli
1
komentarz 12 września 2016 przez Arkadiusz Waluk Ekspert (287,950 p.)

3. Wstawiaj kod na forum w specjalnych bloczkach.

4 odpowiedzi

+1 głos
odpowiedź 12 września 2016 przez kubaapk Nałogowiec (44,270 p.)
Skoro ta walidacja ma uniemożliwiać wysłania pustych inputów to daj im 'required'

<input typr="text" required>
komentarz 13 września 2016 przez efiku Szeryf (75,160 p.)
To powinno wystarczyć ! Zwłaszcza że walidacja jest też po stronie serwera;)
+1 głos
odpowiedź 12 września 2016 przez ScriptyChris Mędrzec (190,190 p.)

Kod umieść w odpowiednim bloczku.

 jeśli liczba znaków nie przekroczy 1 czyli jeśli będzie puste pole

W takim razie pole nie będzie puste, bo ilość znaków równa jedności nie jest większa od jedynki.

document.getElementsByName('password')

document.getElementsByTagName( 'password' );  jeśli już

Jednakże, metoda ta zwraca Ci zbiór elementów (tak jak pozostałe metody ze zbioru document.getElementsBy*()), a nie pojedynczy element. Dlatego zapisz na końcu [0], albo pobierz element przez ID, albo skorzystaj z .querySelector();

window.length = function(event) {

Jeśli chcesz wychwytywać wpisanie pojedynczego znaku, to musisz nasłuchiwać zdarzenia 'input', to po pierwsze. Po drugie, skorzystaj z addEventListener(). Po trzecie, po co robić to aż na obiekcie window?

Nie za bardzo rozumiem logikę tego skryptu, ale może chodzi Ci o coś takiego: http://codepen.io/ChrissP92/pen/dpGrVB

komentarz 12 września 2016 przez Damian Maksymilian B Nowicjusz (120 p.)
Generalnie chodzi mi o to że jeśli nic nie wpisze w inpucie login lub hasło  i kliknę submit to funkcja spowoduje wyłączenie określonego blocku, który pojawia mi się niepotrzebnie.
1
komentarz 12 września 2016 przez Comandeer Guru (601,590 p.)

document.getElementsByTagName( 'password' );  jeśli już

Niekoniecznie. document.getElementsByName zwraca elementy, które mają atrybut [name] równy podanej wartości. 

komentarz 13 września 2016 przez ScriptyChris Mędrzec (190,190 p.)
Ok, ale Autor nie podał kodu HTML, więc stwierdziłem że po prostu źle zapisał tą metodę.
0 głosów
odpowiedź 12 września 2016 przez xmentor Nałogowiec (49,520 p.)
edycja 12 września 2016 przez xmentor
window.length

??

myślę, że powinno być load, ale moim zdaniem w arkuszu powinieneś nadać .form-error display:none, a np. przy wysyłaniu formularza przeprowadzać walidacje i przy niepowodzeniu(nie wprowadzeniu żadnych wartości w pola, wyświetlić błąd).

0 głosów
odpowiedź 12 września 2016 przez skrzatjedyny Gaduła (3,150 p.)
edycja 12 września 2016 przez skrzatjedyny
window.length = function(event) ...

Ten fragment nie ma sensu kompletnie. Spójrz, żeby wywołać jakas funkcje musisz ja do jakiegos zdarzenia przypisac (onload, onchange, itd.). W Twoim przypadku przyda sie zdarzenie onChange (http://www.w3schools.com/jsref/event_onchange.asp). Cos w ten desen:

password.onchange = function() {nazwaTwojejFunkcji}

function nazwaTwojejFunkcji() {
//jakis kod
}

Sam warunek tez nie ma prawa dzialac, popraw na cos w stylu:

if(password.length <=0) {
    alert("haslo jest zbyt krotkie");
}

Aha, zainteresuj sie biblioteka jQuery, duzo ulatwia ;)

1
komentarz 12 września 2016 przez ScriptyChris Mędrzec (190,190 p.)

http://forum.pasja-informatyki.pl/34559/w3schools-nie-szerzmy-falszywej-propagandy

I nie password.onchange tylko password.addEventListener( 'change', function );

zainteresuj sie biblioteka jQuery, duzo ulatwia ;)

Co w tym konkretnie przypadku może ułatwić? 

komentarz 12 września 2016 przez skrzatjedyny Gaduła (3,150 p.)
No dobrze, moze z tym password.onchange poplynalem, ale nie wiedzialem ze na tamtej stronce robia takie buble. Dzieki za info ;)

Ale jQuery ulatwiloby np nasluch zdarzenia np. https://api.jquery.com/change/
1
komentarz 12 września 2016 przez ScriptyChris Mędrzec (190,190 p.)

Ale jQuery ulatwiloby np nasluch zdarzenia np.

Przy triggerowaniu może jest krótszy zapis, ale do podpinania zdarzeń możesz posłużyć się czystym JSem: http://youmightnotneedjquery.com/

Podobne pytania

0 głosów
1 odpowiedź 99 wizyt
pytanie zadane 18 marca 2017 w JavaScript przez Bakr Mądrala (6,850 p.)
0 głosów
1 odpowiedź 413 wizyt
pytanie zadane 18 stycznia 2017 w JavaScript przez Grant Nowicjusz (160 p.)
0 głosów
1 odpowiedź 109 wizyt
pytanie zadane 1 czerwca 2019 w JavaScript przez fyrr Użytkownik (910 p.)

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

61,964 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!

...