Given the following code:
[:input {:type "text"
:value (:text @app-state)
:on-change (fn [e]
(if (= 31 (.-keyCode e))
(println "ENTER")
(println "NOT ENTER")))}]
How to change the if
condition so that enter keypresses can be distinguished from normal keys? All properties in e
except target
seem to be null.
that's how to fix it:
:on-key-press
(rather than :on-change
),
because "enter" doesn't trigger :on-change
event (it obviously doesn't change the text)use charCode
instead of keyCode
(not an expert in js, but keyCode
doesn't work for me in firefox)
[:input {:type "text"
:value (:text @app-state)
:on-key-press (fn [e]
(println "key press" (.-charCode e))
(if (= 13 (.-charCode e))
(println "ENTER")
(println "NOT ENTER")))}]
With key
.
[:input
{:on-key-press
(fn [e]
(if (= (.-key e) "Enter")
(.log js/console "Enter")
(.log js/console "Not Enter")))}]
Also of interest is :on-key-up
and :on-key-down
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With