Có một cách để làm điều này với KeyDown, nếu bấm phím là không khả thi do nhu cầu hủy bỏ sự kiện, vv Sử dụng một tuyên bố if() với thử nghiệm này:
parseInt(event.keyIdentifier.substring(2),16) > 47 && parseInt(event.keyIdentifier.substring(2),16) < 58
OR, với các sự kiện jQuery:
parseInt(event.originalEvent.keyIdentifier.substring(2),16) > 47 && parseInt(event.originalEvent.keyIdentifier.substring(2),16) < 58
Ví dụ này giả định "sự kiện" là sự kiện keydown. keyIdentifier là một số thập lục phân đại diện cho giá trị unicode cho char liên quan. Sử dụng keyIdentifier, số từ bàn phím số/bàn phím VÀ các con số trên bàn phím QWERTY của bạn sẽ có cùng giá trị, 48 - 57 (U + 0030 - U + 0039), ngay cả với sự kiện keyDown.
Giá trị Unicode trong trình duyệt sẽ trông giống như U + 0030 hoặc U + 002F. Phân tích cú pháp chuỗi này để chỉ nhận giá trị thập lục phân, sau đó sử dụng parseInt() với một cơ số 16 để chuyển đổi nó thành base-10.
Giả sử cả hai đều muốn ký tự thực từ bàn phím và cũng muốn chụp và dừng phím Enter để ngăn gửi biểu mẫu? Dừng nhấn phím xuất hiện để vẫn gửi. – enigment
Tôi không thể bày tỏ lòng biết ơn của tôi về câu trả lời này. Đây là sự cứu rỗi của tôi đang cố gắng nắm bắt tất cả các trường hợp khác nhau có thể với bàn phím shift, alt, numpad và di động. 'keypress' làm cho nó dễ dàng như bánh! – nirazul