keydown事件是jQuery中用於監聽鍵盤按鍵按下事件的常用方法。當用户在頁面上按下任意鍵時,會觸發keydown事件。與keypress和keyup事件相比,keydown事件會捕獲所有按鍵(包括功能鍵如回車、方向鍵等),而keypress僅捕獲能產生字符的按鍵。
事件觸發順序:
keydown → keypress → keyup
基本語法
// 觸發被選元素的keydown事件
$(selector).keydown();
// 添加函數到keydown事件
$(selector).keydown(function(event) {
// 事件處理代碼
});
獲取按鍵信息
推薦使用event.which屬性來獲取按鍵的代碼,它在不同瀏覽器中表現一致:
$(selector).keydown(function(event) {
console.log("按鍵碼:", event.which);
// 例如:判斷是否為回車鍵(13)
if (event.which === 13) {
console.log("用户按下了回車鍵");
}
});
實用代碼示例
1. 基礎示例:改變輸入框背景顏色
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<style>
input {
padding: 8px;
width: 300px;
}
</style>
</head>
<body>
<input type="text" placeholder="輸入一些文字">
<script>
$("input").keydown(function() {
$(this).css("background-color", "#FFFFCC");
});
</script>
</body>
</html>
2. 回車鍵觸發搜索功能(推薦)
$(document).ready(function() {
$('#searchInput').on('keydown', function(event) {
// 判斷是否為回車鍵(keyCode=13)
if (event.which === 13) {
// 阻止默認的回車提交行為
event.preventDefault();
// 獲取搜索關鍵詞
var keyword = $.trim($(this).val());
// 簡單驗證
if (keyword.length === 0) {
alert('請輸入搜索內容');
return;
}
// 執行搜索邏輯(可替換為AJAX請求)
console.log('正在搜索:', keyword);
// performSearch(keyword);
}
});
});
3. 實現快捷鍵(如Ctrl+S保存)
$(document).on('keydown', function(event) {
// 檢測Ctrl+S組合鍵
if (event.ctrlKey && event.which === 83) {
console.log('Ctrl+S 被按下');
// 阻止瀏覽器默認行為
event.preventDefault();
// 執行保存操作
saveContent();
}
});
function saveContent() {
console.log('正在保存內容...');
// 保存邏輯
}
4. 在輸入框中插入字符後繼續鍵入
$("#myInput").keydown(function(event) {
// 在按下空格鍵時插入"Hello"
if (event.which === 32) {
$(this).val($(this).val() + "Hello");
event.preventDefault(); // 阻止默認的空格鍵行為
}
});
注意事項
- 事件綁定元素:
keydown事件應綁定在輸入框(input)或文本區域(textarea)上,而不是按鈕或表單本身。 - 阻止默認行為:當處理回車鍵等特殊按鍵時,記得使用
event.preventDefault()阻止默認行為(如表單提交導致頁面刷新)。 - 兼容性:推薦使用
event.which代替event.keyCode,因為它在不同瀏覽器中表現更一致。 - 元素焦點:
keydown事件僅在具有焦點的元素上觸發,確保輸入框已獲取焦點。 - 全局監聽:如需監聽整個頁面的按鍵(如全局快捷鍵),應將事件綁定到
document對象上。 - 避免阻塞UI:在事件處理函數中不要使用
alert()等會阻塞頁面的函數,以免影響用户體驗。
常用按鍵的keyCode參考
|
按鍵
|
keyCode
|
|
回車
|
13
|
|
空格
|
32
|
|
A-Z
|
65-90
|
|
0-9
|
48-57
|
|
方向鍵(左)
|
37
|
|
方向鍵(上)
|
38
|
|
方向鍵(右)
|
39
|
|
方向鍵(下)
|
40
|
|
Ctrl
|
17
|
|
Shift
|
16
|
|
Alt
|
18
|