Dường như trong hầu hết các trình duyệt, <input type="submit">
xử lý cả [phím cách] và [enter] dưới dạng nhấp chuột, nhưng liên kết <a>
chỉ xử lý [enter] dưới dạng nhấp chuột.jQuery - Kích hoạt sự kiện nhấp chuột trên các liên kết bằng phím dài?
Ứng dụng của tôi sử dụng một số liên kết được định dạng để mô phỏng các nút, vì vậy người dùng quen với việc nhấn tab và nhấn [phím cách] sẽ bị thất vọng.
chút này của jQuery giải quyết vấn đề:
$("a.Button").die("keypress").live("keypress", function(e) {
if (e.which == 32) {
$(this).trigger("click");
e.preventDefault();
}
});
Câu hỏi của tôi: Có một lý do để không làm điều này? Tôi hơi miễn cưỡng khi ghi đè hành vi mặc định của trình duyệt trên một số thứ cơ bản như thế này, nhưng vì tôi đã lạm dụng thẻ liên kết để làm cho nó trông giống như một nút, ít nhất theo cách này, tôi không vi phạm kỳ vọng của người dùng thêm nữa.
FWIW đây là ứng dụng có lượng người xem hạn chế. Javascript là một yêu cầu đã nêu để sử dụng nó. Nó làm cho việc sử dụng nhiều bản đồ, biểu đồ, lưới có thể chỉnh sửa và các yếu tố trực quan và/hoặc tương tác khác và không rõ ràng với tôi rằng nó có thể sử dụng được thông qua trình đọc màn hình. –
Điều này dường như không hoạt động đối với các nút liên kết ASP.NET tạo ra các phần tử neo với một href của 'javascript: WebForm_DoPostBackWithOptions (new WebForm_PostBackOptions ("ctl00 $ main $ uclFind $ uclEntry $ btnGet", "", true, "", "", sai, đúng)) ' –