如何在按下Enter键时触发HTML页面的搜索功能?
实现Enter键触发搜索的方案
完全可行,下面是两种适配你现有代码的实现方式:
方式一:完善全局按键监听函数
修改你已有的CheckEnter函数,判断按下的是Enter键时直接触发搜索按钮的点击事件:
window.document.onkeydown = CheckEnter; function CheckEnter(event) { // 兼容不同浏览器的事件对象获取 event = event || window.event; // 判断是否为Enter键(兼容新旧浏览器的判断方式) if (event.keyCode === 13 || event.key === 'Enter') { // 触发搜索按钮的点击事件 $('#searchButton').click(); // 阻止默认行为,避免页面不必要的跳转或刷新 event.preventDefault(); } }
方式二:精准绑定输入框的按键事件(推荐)
相比全局监听,直接给搜索输入框绑定事件更高效,不会影响页面其他元素的按键行为:
$(function(){ // 给搜索框绑定keydown事件 $('#searchBox').on('keydown', function(event) { if (event.keyCode === 13 || event.key === 'Enter') { $('#searchButton').click(); event.preventDefault(); } }); // 保留原有的搜索按钮点击逻辑 $('#searchButton').click(function() { $('#financialServices').empty(); // 你的AJAX搜索逻辑... $.ajax ({ url: _spPageContextInfo.webAbsoluteUrl+"/_api/web/lists/getbytitle('FAQs')/items?$top=100&$orderby=Category,Title asc", dataType: 'json', async: false, headers: { "Accept": "application/json;odata=verbose" }, success: function(data) { // 原有的成功回调逻辑... } }); }); });
关键说明
event.preventDefault()用于阻止Enter键的默认行为(比如表单提交时的页面刷新),避免干扰搜索逻辑的执行。- 同时使用
event.keyCode ===13和event.key === 'Enter'是为了兼顾新旧浏览器的兼容性,确保在不同环境下都能正常触发搜索。
内容的提问来源于stack exchange,提问作者Pete Whelan
相关产品推荐
相关产品推荐

