Jak to zrobić?Wykryj backspace i del na zdarzeniu "input"?
Próbowałem:
var key = event.which || event.keyCode || event.charCode;
if(key == 8) alert('backspace');
ale to nie działa ...
Jeśli zrobić to samo w przypadku naciśnięcia klawisza to działa, ale nie chcę używać przyciśnięcie bo nim wypisuje wpisany znak w moim polu wejściowym. Muszę być w stanie kontrolować tego
mój kod:
$('#content').bind('input', function(event){
var text = $(this).val(),
key = event.which || event.keyCode || event.charCode;
if(key == 8){
// here I want to ignore backspace and del
}
// here I'm doing my stuff
var new_text = 'bla bla'+text;
$(this).val(new_text);
});
żaden znak powinien być dołączany w moim wejściu, oprócz co Dodaję z val() faktycznie sygnał z użytkownik powinien być całkowicie ignorowany, tylko kluczowa akcja jest dla mnie ważna.
rzeczywiście nie trzeba robić or'ing - event.which jest dobrze, jQuery normalizuje obiekt zdarzenia dla Ciebie. Zobacz http://api.jquery.com/category/events/event-object/ – Niko
Powinieneś umieścić nazwę zdarzenia jako pierwszy argument '.bind', a nie selektora. Powinien być '$ ('content'). Bind (" naciśnięcie klawisza ", ...' – pmrotule