使用Javascript时输入不会返回true

时间:2015-02-05 05:57:53

标签: javascript

尝试记录以下内容给我的输入。但是当我试图输入框时,我甚至无法得到任何其他的错误。正如在我能够键入单个字符一样,让它返回true然后几乎立即选择不再响应并且无论我在框内输入什么,总是返回false。



function search() {
  var value = document.getElementById("search").value;
  console.log(value == ''); // true
}

<input type="text" onkeydown="search()" id="search"></input>
&#13;
&#13;
&#13;

测试 - Chrome 40.0.2214.94(64位)

3 个答案:

答案 0 :(得分:1)

问题是你试图比较字符串。当您与==进行比较时,它会查看值。您需要使用===然后您将能够检查输入是否等于您要搜索的内容。

答案 1 :(得分:0)

键盘事件是前端开发的一个较为复杂的部分。存在不一致和跨浏览器问题。

但仍然有一些食谱可以帮助轻松应对普通情况。

有以下键盘事件:

  • KEYDOWN

按下一个键。

  • 按键

按下了一个字符键。

  • KEYUP

发布密钥。 keypress和keydown之间存在根本区别。

Keydown触发任何按键并提供扫描码。 Keypress之后keydown会触发并提供字符代码,但只保证字符键。

  

您需要使用keyup,因为它会在keypress之后触发。

<input type="text" onkeyup="search()" id="search"></input>

请参阅KeyEvents

答案 2 :(得分:0)

以下是更新后的JSFiddle

您必须使用keyup事件,因为在按下该键后您需要结果。