2010-12-11 35 views

Trả lời

19

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 ý.

+0

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

19

Hãy thử sử dụng các chức năng keydownkeyup thay cho IE.

Javascript e.keyCode doesn't catch Backspace/Del in IE

+2

xem chính xác http://jsfiddle.net/EZqMA/ –

+0

Đó 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

+1

@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. –

0

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 ..

Các vấn đề liên quan