Bạn thể làm nó theo cách này, mặc dù tôi hy vọng nó có thể là kinh khủng chậm trên các trang lớn:
$('*').off('keyup keydown keypress');
Đó sẽ chọn tất cả các yếu tố duy nhất trên trang web, sau đó loại bỏ bất kỳ keyup
, keydown
, và keypress
sự kiện bị ràng buộc với họ.
Nếu bạn muốn ngăn chặn người dùng từ việc sử dụng xóa lùi chìa khóa để điều hướng đến các trang trước, bạn có thể thử đoạn mã sau:
var inputTags = ['INPUT', 'TEXTAREA'];
$(document).on('keypress', function(e) {
if(e.which === 8 && $.inArray(e.target.tagName, inputTags) === -1)
e.preventDefault();
});
Điều đó sẽ hạn chế việc sử dụng các phím backspace, trừ trong trường hợp tiêu điểm là yếu tố đầu vào, nơi bạn có thể nhập văn bản (để <input type="text">
hoặc <textarea>
).
Hãy xem điều này working demo.
Nguồn
2013-03-06 10:55:15
điều này sẽ ngăn trang chuyển hướng đến trang trước đó khi nhấn phím xóa lùi? –
@MilindAnantwar Không, đó là chức năng trình duyệt tích hợp, không phải trình xử lý sự kiện được thêm vào trang bằng jQuery. Bạn có thể * thêm * một trình xử lý sự kiện để ngăn chặn điều đó nếu đó là mục tiêu dự định của bạn, tôi phải kiểm tra. –
@MilindAnantwar Tôi đã chỉnh sửa câu trả lời của mình để bao gồm một số thông tin về cách bạn muốn ngăn chặn bằng cách sử dụng phím xóa lùi để điều hướng qua các mục lịch sử trước đó. –