当前位置:  开发笔记 > 编程语言 > 正文

在输入类型="文本"中跟踪onchange类型的最佳方法?

如何解决《在输入类型="文本"中跟踪onchange类型的最佳方法?》经验,为你挑选了8个好方法。

根据我的经验,input type="text" onchange事件通常只在你离开(blur)控件之后才会发生.

有没有办法强制浏览器onchange每次textfield内容更改时触发?如果没有,那么"手动"追踪这个最优雅的方式是什么?

使用onkey*事件是不可靠的,因为您可以右键单击该字段并选择"粘贴",这将更改该字段而不需要任何键盘输入.

setTimeout唯一的方法吗?丑陋的:-)



1> Robert Sieme..:

这几天听oninput. 感觉就像onchange没有必要失去对元素的关注.这是HTML5.

它受到所有人(甚至是移动设备)的支持,除了IE8及以下版本.对于IE添加onpropertychange.我这样使用它:

const $source = document.querySelector('#source');
const $result = document.querySelector('#result');

const typeHandler = function(e) {
  $result.innerHTML = e.target.value;
}

$source.addEventListener('input', typeHandler) // register for oninput
$source.addEventListener('propertychange', typeHandler) // for IE8
// $source.addEventListener('change', typeHandler) // fallback for Firefox for  oninput is enough



2> Crescent Fre..:

更新:

见另一个答案(2015年).


2009年原创答案:

那么,您希望onchange事件在keydown,blur paste 上触发吗?这太神奇了.

如果要在键入时跟踪更改,请使用"onkeydown".如果需要使用鼠标捕获粘贴操作,请使用"onpaste"(IE,FF3)和"oninput"(FF,Opera,Chrome,Safari 1).

1 在Safari上打破

雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有