技术需求:按下Enter键后延迟5秒提交输入内容(需修改JS代码)
实现按下Enter后延迟5秒提交输入的功能
要给现有代码添加延迟5秒提交的计时功能,核心是用setTimeout()包裹提交逻辑,同时为避免用户连续按Enter触发多次提交,需要提前清除未执行的定时器。修改后的代码如下:
document.addEventListener("DOMContentLoaded", () => { // 声明定时器变量,用于后续清除重复触发的定时器 let submitTimer; inputValue.addEventListener("keydown", (e) => { if (e.code === "Enter") { // 清除上一次未执行的定时器,防止连续按Enter重复提交 clearTimeout(submitTimer); let input = inputValue.value; inputValue.value = ""; // 延迟5秒执行提交逻辑 submitTimer = setTimeout(() => { output(input); }, 5000); } }); });
关键说明:
submitTimer变量:每次按下Enter时先通过clearTimeout(submitTimer)清空上一次的定时器,避免用户连续回车导致多次调用output()。setTimeout()参数:第一个参数是延迟执行的提交逻辑,第二个参数为延迟时长(单位毫秒,5000对应5秒)。- 保留了原代码中清空输入框的逻辑,确保用户按下Enter后输入框立即清空,提交操作在5秒后执行。
内容的提问来源于stack exchange,提问作者sankalp
相关产品推荐
相关产品推荐

