在输入类型=“text”中跟踪您所输入的类型的最佳方法?

在输入类型=“text”中跟踪您所输入的类型的最佳方法?

以我的经验来看,input type="text" onchange事件通常仅在您离开(blur)控制。

有没有办法迫使浏览器触发onchange每次textfield内容变化?如果不是,什么是最优雅的方式来跟踪这个“手动”?

使用onkey*事件是不可靠的,因为您可以右键单击该字段并选择“粘贴”,这将在没有任何键盘输入的情况下更改该字段。

setTimeout唯一的办法?丑:-)


白猪掌柜的
浏览 403回答 3
3回答

牛魔王的故事

所以,你想要onchange事件按下键开火,模糊,和糊?那是魔法。如果要跟踪键入的更改,请使用"onkeydown"..如果需要用鼠标捕获粘贴操作,请使用"onpaste"(伊,&nbsp;FF3)和"oninput"&nbsp;(FF,Opera,Chrome,Safari1).1破为<textarea>关于Safari的。使用textInput相反

拉风的咖菲猫

这几天听着oninput.感觉就像onchange而不需要失去对元素的关注。是HTML 5。它得到了每个人(甚至是移动的)的支持,除了IE8和更低的版本。为IE添加onpropertychange..我就是这样用的:const $source = document.querySelector('#source');const $result = document.querySelector('#result');const typeHandler = function(e) {&nbsp; $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 <select><option>, for <input> oninput is enough<input id="source" /><div id="result"></div>

摇曳的蔷薇

使用jQuery 1.8.3,下面的代码对我来说很好HTML:<input type="text" id="myId" />JavaScript/JQuery:$("#myId").on('change&nbsp;keydown&nbsp;paste&nbsp;input',&nbsp;function(){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;doSomething();});
打开App,查看更多内容
随时随地看视频慕课网APP