You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

点击F1跳转页面时当前页textbox失效问题求解

问题原因&解决方案

嘿,问题出在你写的e.preventDefault()位置上!你把它放在了整个keydown事件处理函数的最开头,这会阻止所有键盘操作的默认行为——包括文本框里输入字符、按退格删除内容这些基础操作,所以你的TextBox才没法用。

正确的做法是:只在检测到F1键的时候,才阻止默认行为(因为F1默认会触发浏览器的帮助页面,我们需要拦截这个),其他按键让它们正常工作就好。

修改后的代码(兼容旧版keyCode)

$(document).ready(function () { 
  $("body").keydown(function (e) { 
    // 统一用参数e,避免全局event的兼容问题
    if (e.keyCode === 112) { 
      e.preventDefault(); // 只在F1触发时阻止默认行为
      window.location.href = "../nextpage.aspx"; 
    } 
    // 其他按键不做任何拦截,保留默认行为
  }); 
});

更推荐的写法(使用标准的key属性,keyCode已废弃)

现在浏览器更推荐用e.key来判断按键,可读性更好,兼容性也更稳定:

$(document).ready(function () { 
  $("body").keydown(function (e) { 
    if (e.key === 'F1') { 
      e.preventDefault(); 
      window.location.href = "../nextpage.aspx"; 
    } 
  }); 
});

这样改完之后,F1键依然能正常跳转页面,同时TextBox也可以正常输入内容啦~

内容的提问来源于stack exchange,提问作者CodingFriend

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:22:14