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

Wykrywanie klawisza enter w javascript

Object Storage Arubacloud
0 głosów
90 wizyt
pytanie zadane 10 lutego w JavaScript przez Piotrek2713 Mądrala (5,380 p.)

Chcę uruchomić funkcję w js po naciśnięciu enter.

Gdy robię zmienne do sprawdzenia klawisza

const e = window.e;
var keyCode = e.code || e.key;

Wyświetla się błąd

Cannot read properties of undefined

dla code i dla key

if (keycode === 'Enter')
{
    startTimer();
    console.log('Enter');
}

W konsoli oczywiście nic się nie pojawia prócz błędu

komentarz 10 lutego przez pablop76 VIP (123,180 p.)

Jak wykrywasz naciśnięcie klawisza?

komentarz 10 lutego przez Piotrek2713 Mądrala (5,380 p.)

O co pytasz?

Pisałem, ze robię zmienne z eventem

const e = window.e;
var keyCode = e.code || e.key;

i próbuję wysłać napis enter do konsoli

if (keycode === 'Enter')
{
    startTimer();
    console.log('Enter');
}

po wciśnięciu entera

2 odpowiedzi

+1 głos
odpowiedź 10 lutego przez Bizuma Gaduła (3,650 p.)

Hej, nigdzie nie zarejestrowałeś nasłuchiwania na odpowiedni event.
Tutaj przykład z objaśnieniem jak to powinno wyglądać:
 

window.addEventListener('keydown', (event) => { // Tutaj rejestrujemy nasłuchiwanie na odpowiedni event dla całego obiektu window - czyli możemy kliknąć gdziekolwiek
    event.preventDefault(); // opcjonalnie anulujemy domyślne zachowania przeglądarki, jakie mogą być przypisane do tego eventu
    if (event.key === 'Enter') { // Sprawdzamy czy został kliknięty klawisz, którego szukamy
        console.log("enter pressed!") // reagujemy na wciśnięty klawisz
    }
});

Lub to samo ale z innym sposobem przypisania eventu
 

window.onkeydown = (event) => { // Tutaj rejestrujemy nasłuchiwanie na odpowiedni event dla całego obiektu window
    event.preventDefault(); // Tutaj rejestrujemy nasłuchiwanie na odpowiedni event dla całego obiektu window - czyli możemy kliknąć gdziekolwiek
    if (event.key === 'Enter') { // Sprawdzamy czy został kliknięty klawisz, którego szukamy
        console.log("enter pressed!") // reagujemy na wciśnięty klawisz
    }
}

Warto dodać, że możemy nasłuchiwać na różne akcje na klawiaturze. Ja użyłem chyba tego, którego oczekujesz czyli "keydown" ale są jeszcze np "keypress" i "keyup"

To co napisałeś, czyli
 

const e = window.e;

Kompletnie nic nie robi, po prostu z obiektu "window" próbujesz wyciągnąć pole "e", które nie istnieje - sam "window" to jeszcze nie event ;)

Potem próbujesz z nieistniejącego "e" wyciągnąć .code lub .key i stąd leci błąd. No ale jak wspomniałem musisz to napisać kompletnie inaczej 

0 głosów
odpowiedź 10 lutego przez Wiciorny Ekspert (270,190 p.)

Polecam też poczytać o rozpoznawaniu klawiszy : https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key#Example
Masz liste przypadków listę listenerów i przykłady użycia, generalnie  to event.

E.window- w kontekście Node.js bedzie całkiem innym obiektem niż w kontekście przeglądarki, ale u Ciebie nie dodajesz jakby reakcji na wykrycie zdarzenia, a tylko przypisujesz zdarzenie do zmiennej keyCode. 

document.addEventListener('keydown', function(event) {
    if (event.key === 'Enter') {
        console.log('Naciśnięto klawisz Enter');
    }
});

powyżej masz przyklad ... sytuacji kiedy nasłuchujesz na zdarzenie, W twoim początkowym kodzie tylko przypisujesz obiekt zdarzenia do zmiennej e, ale nie dodajesz żadnego nasłuchiwania ani żadnej logiki, która miałaby reagować na wywołanie tego zdarzenia.

Podobne pytania

0 głosów
2 odpowiedzi 166 wizyt
pytanie zadane 17 września 2023 w JavaScript przez Piotrek2713 Mądrala (5,380 p.)
0 głosów
1 odpowiedź 650 wizyt
pytanie zadane 24 lutego 2018 w JavaScript przez Karol96 Nowicjusz (150 p.)
+1 głos
1 odpowiedź 399 wizyt
pytanie zadane 12 lipca 2019 w Systemy operacyjne, programy przez Bezy Bywalec (2,280 p.)

92,579 zapytań

141,432 odpowiedzi

319,663 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!

...