尝试记录以下内容给我的输入。但是当我试图输入框时,我甚至无法得到任何其他的错误。正如在我能够键入单个字符一样,让它返回true然后几乎立即选择不再响应并且无论我在框内输入什么,总是返回false。
function search() {
var value = document.getElementById("search").value;
console.log(value == ''); // true
}

<input type="text" onkeydown="search()" id="search"></input>
&#13;
测试 - Chrome 40.0.2214.94(64位)
答案 0 :(得分:1)
问题是你试图比较字符串。当您与==进行比较时,它会查看值。您需要使用===然后您将能够检查输入是否等于您要搜索的内容。
答案 1 :(得分:0)
键盘事件是前端开发的一个较为复杂的部分。存在不一致和跨浏览器问题。
但仍然有一些食谱可以帮助轻松应对普通情况。
有以下键盘事件:
按下一个键。
按下了一个字符键。
发布密钥。 keypress和keydown之间存在根本区别。
Keydown
触发任何按键并提供扫描码。
Keypress
之后keydown
会触发并提供字符代码,但只保证字符键。
您需要使用
keyup
,因为它会在keypress
之后触发。
<input type="text" onkeyup="search()" id="search"></input>
请参阅KeyEvents
答案 2 :(得分:0)
以下是更新后的JSFiddle
您必须使用keyup事件,因为在按下该键后您需要结果。