为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

白猪掌柜的 2019-07-04 12:42:14
在输入类型=“text”中跟踪您所输入的类型的最佳方法?以我的经验来看,input type="text" onchange事件通常仅在您离开(blur)控制。有没有办法迫使浏览器触发onchange每次textfield内容变化?如果不是,什么是最优雅的方式来跟踪这个“手动”?使用onkey*事件是不可靠的,因为您可以右键单击该字段并选择“粘贴”,这将在没有任何键盘输入的情况下更改该字段。是setTimeout唯一的办法?丑:-)
查看完整描述

3 回答

?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

所以,你想要onchange事件按下键开火,模糊,糊?那是魔法。

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

1破为<textarea>关于Safari的。使用textInput相反


查看完整回答
反对 回复 2019-07-04
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

这几天听着oninput.感觉就像onchange而不需要失去对元素的关注。是HTML 5。

它得到了每个人(甚至是移动的)的支持,除了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 <select><option>, for <input> oninput is enough

<input id="source" />

<div id="result"></div>


查看完整回答
反对 回复 2019-07-04
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

使用jQuery 1.8.3,下面的代码对我来说很好

HTML:<input type="text" id="myId" />

JavaScript/JQuery:

$("#myId").on('change keydown paste input', function(){
      doSomething();});


查看完整回答
反对 回复 2019-07-04
  • 3 回答
  • 0 关注
  • 402 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信