addeventlistener do inputa, nie działa

0

witam! chciałbym aby po każdym naciśnięciu klawisza w inpucie była wywoływana funkcja, która wyświetli jakiś napis w konsoli. Ogólnie to po odświeżeniu strony wyświetla się tylko napis Welcome to JavaScript... ale już nie działa funkcja

<body>
    <h1>
        This is a static template, there is no bundler or bundling involved!
    </h1>

    <input id="login_form" type="text">

    <script>
        const myInput = document.getElementById("login_form");
        myInput.addEventListener("onkeydown", function () {
            console.log("test... test... test...");
        });

        console.log("Welcome to JavaScript!!!");
    </script>
</body>
4

Jeśli zapinasz event w JS to podajesz samą nazwę, bez "on", czyli:

myInput.addEventListener("keydown", function () {

ps. Dobra rada: cały kod w JS lepiej wykonać w window.onload, by mieć pewność, że wszystkie elementy html zostały załadowane.

0

dziękuję dziękuję, mam jeszcze jedno małe pytanie co do mojego kodu, trochę go zmodyfikowałem. Działa jakby z opóźnieniem, tzn. nie sprawdza ostatnio wciśniętego klawisza tylko kolejny i np. jeżeli input ma jedną cyfrę to dalej hasło jest niepoprawne mimo, że jest jakaś cyfra w haśle, dopiero jak dam dwie cyfry to jest hasło poprawne. To samo z literkami dopiero przy 6 literkach jest ok...

<script>
        function hasNumber(myString) {
            return /\d/.test(myString);
        }

        const myInput = document.getElementById("login_form");
        myInput.addEventListener("keydown", () => {
            const str = myInput.value;
            if(str.length >= 5 && hasNumber(str) ) {
                document.getElementById("password_information").innerHTML = "<b>Twoje hasło jest poprawne.</b>"
            }

            else {
                document.getElementById("password_information").innerHTML = "Twoje haslo musi miec przynajmniej <b>5 znaków</b> i zawierać przynajmniej <b>jedną cyfrę!</b>";
            };
        });
    </script>
0

Zmień na
keyup.

Popraw instrukcję warunkową:
if((str.length >= 5) && (hasNumber(str)))

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