Tại sao không phát hiện lại không gian sử dụng sự kiện nhấn phím jquery?Tại sao không phát hiện lại không gian sử dụng sự kiện nhấn phím jquery?
$("#field").keypress(function(event){alert(event.which);});
Tại sao không phát hiện lại không gian sử dụng sự kiện nhấn phím jquery?Tại sao không phát hiện lại không gian sử dụng sự kiện nhấn phím jquery?
$("#field").keypress(function(event){alert(event.which);});
Sự kiện "nhấn phím" là (trong biểu mẫu IE ban đầu của nó và trong Safari/Chrome) về một ký tự thực được thêm vào trường văn bản. Phím backspace rõ ràng không thêm một ký tự mới vào giá trị trường, vì vậy nó không gây ra sự kiện nhấn phím nào.
Firefox và Opera hơi khó khăn hơn trong việc tạo sự kiện nhập.
PPK (quirksmode) considers the IE and Webkit behaviors to be the sensible ones và tôi khá đồng ý.
Nó có thể là hợp lý, nhưng nó làm giảm tính hữu ích của IMO sự kiện. Có lẽ nó chỉ là thói quen, nhưng tôi thường sử dụng nhấn phím (trong các ngôn ngữ khác, nơi sự kiện cháy nếu phím bấm có giá trị ASCII) bẫy phím BS để làm những việc như nút tắt khi người dùng sao lưu tất cả văn bản ra khỏi hộp nhập . – BobRodes
Hãy thử sử dụng các chức năng keydown
và keyup
thay cho IE.
xem chính xác http://jsfiddle.net/EZqMA/ –
Đó là một trang web thực sự thú vị, Eric. Tôi đã học được điều gì đó ngày hôm nay. – mdarwi
@Eric IMO tốt hơn để sử dụng sự kiện 'keyup' khi nó xảy ra sau khi khóa được giải phóng và' .value' sẽ trả về giá trị mới. –
Các onKeyUp một mình sẽ làm tất cả những phát hiện quan trọng trong bàn phím chrome ..
này hoạt động tốt đối với tôi trong FF, nhưng không phải trong IE (8). Bạn đang dùng trình duyệt nào? –