javascript - Keypress event listener not working -


i'm having hard time trying understand how javascript events works. have until now:

$ ->  masks = document.queryselectorall('[data-mask]')   in masks   i.addeventlistener("keypress", (e) -> onlynumber(e) )   mask = i.getattribute("data-mask")    switch (mask)    when "cep" i.addeventlistener("keypress", -> cep(this)); i.setattribute("maxlength", "9")    cep = (input) ->      input.value = input.value + "-" if input.value.length == 5 , input.charcode != 8 # backspace  onlynumber = (event) ->  event.preventdefault() if event.charcode > 0 , (event.charcode < 48 || event.charcode > 57 ) 

what need correct line:

input.value = input.value + "-" if input.value.length == 5 , input.charcode != 8 # backspace 

i think event added inside switch block may not able answer key pressed, i'm not sure if can solve problem way. besides conditional in code:

input.charcode != 8 # backspace 

the rest working!

edit1: documentação .keypress "the keypress event sent element when browser registers keyboard input. similar keydown event, except modifier , non-printing keys such shift, esc, , delete trigger keydown events not keypress events. other differences between 2 events may arise depending on platform , browser." it's seems should use keydown event recognize backspace key.


Comments

Popular posts from this blog

c# - Update a combobox from a presenter (MVP) -

How to understand 2 main() functions after using uftrace to profile the C++ program? -

How to put a lock and transaction on table using spring 4 or above using jdbcTemplate and annotations like @Transactional? -