【问题标题】:onChange is called only when the element loses focus仅当元素失去焦点时才调用 onChange
【发布时间】:2011-05-11 10:31:57
【问题描述】:

我希望当您在文本字段中键入时,div 会发生变化(我已经有了更改 div 的代码)。但是,只有在您完成并在文本字段外单击时才会调用 onchange 事件。我希望在输入每个字母时调用它。

我的代码:

<input name="platetext" type="text" onchange="setValue(this)">

【问题讨论】:

    标签: javascript dom-events onchange


    【解决方案1】:

    onChange 在我认为输入失去焦点时被触发。 onKeyUp 应该为您解决问题。

    【讨论】:

      【解决方案2】:

      您可以将事件处理程序绑定到一个“输入”事件(我认为这是 HTML5 引入的)。

      我在这里做了一个快速且非常肮脏的例子:http://jsfiddle.net/RdKZH/

      这将是解决此问题的干净方法(因为 keyup 不适用于复制和粘贴),但您可能需要测试它是否已在您想要支持的所有浏览器中工作。

      【讨论】:

      • 我尝试了将事件更改为 onkeyup 的示例,并且复制和粘贴效果很好。有什么隐藏的问题吗?
      • 当你用 Ctrl+V 粘贴时你是对的,但如果你使用右键单击->粘贴它不会触发 keyup 事件(至少在大多数现代浏览器中)。
      • 这是正确的,但如果你同时添加 onChange 和 onKeyUp 它也涵盖了这种情况(尝试过 chrome)
      • 是的,我认为这也应该有效。但是由于输入事件是为这个用例明确设计的,我仍然建议使用它。并且可能更改或 keyup 作为旧浏览器的后备。只是我的两分钱。 (:
      猜你喜欢
      • 2021-01-06
      • 2010-10-20
      • 2023-03-27
      • 2012-03-31
      • 1970-01-01
      • 2013-10-02
      • 1970-01-01
      • 1970-01-01
      • 2016-12-05
      相关资源
      最近更新 更多