【问题标题】:Javascript onkeydown code to clear text value from search box not working in mozilla firefox用于从搜索框中清除文本值的 Javascript onkeydown 代码在 mozilla firefox 中不起作用
【发布时间】:2026-02-22 00:50:02
【问题描述】:

我正在尝试创建搜索框,在搜索框中输入任何内容后,按 ESC 键 & 它将清除文本。在 Google Chrome 和 Safari 中一切正常,但 Javascript 代码在 Mozilla Firefox 浏览器中不起作用,我无法修复它。

document.onkeydown = function (evtesc) {
	"use strict";
	evtesc = evtesc || window.event;

	if (evtesc.keyCode === 27) {
		document.getElementById("search-largeinput").value = "";
	}
};
<form>
<input id="search-largeinput" type="text" name="search" placeholder="Search SiteName.com">
</form>

【问题讨论】:

    标签: javascript firefox


    【解决方案1】:

    你必须使用document.onkeyup:

    document.onkeydown = function (evtesc) {
      if (evtesc.keyCode === 27) {
        document.getElementById("search-largeinput").value = "";
      }
    };
    

    或者使用document.addEventListener:

    document.addEventListener('keyup', function (e) {
      if (evtesc.keyCode === 27) {
        document.getElementById("search-largeinput").value = "";
      }
    }; 
    

    keydown 事件在键盘事件的默认行为更新输入值之前触发。因此,您手动更改该值,然后浏览器自行更新该值。

    【讨论】: