html文本输入onchange事件

Posted

技术标签:

【中文标题】html文本输入onchange事件【英文标题】:html text input onchange event 【发布时间】:2011-09-04 09:21:48 【问题描述】:

有没有办法实现一个文本更改事件来检测 html 输入文本字段上的文本更改? 可以使用按键事件(按键等)来模拟这些事件,但是,它确实不是高性能和困难的,有没有更好的办法?

【问题讨论】:

请提供更多细节。你需要做什么——还没想好怎么做。例如,如果该字段接收来自条形码扫描仪的输入,那么我将监视该字段而不是使用 keyup/press 或 onchange @mplugjan:用户输入文本框搜索查询,输出区域不断更新 请参阅此以获得最新答案:***.com/a/26202266/1211622 这能回答你的问题吗? Best way to track onchange as-you-type in input type="text"? 【参考方案1】:

使用oninput 事件

<input type="text" oninput="myFunction();" />

【讨论】:

【参考方案2】:

我使用这一行来监听来自 javascript 的输入事件。 它很有用,因为它侦听文本更改和文本粘贴事件。

myElement.addEventListener('input', e =>  myEvent() );

【讨论】:

【参考方案3】:

当我做这样的事情时,我会使用 onKeyUp 事件。

<script type="text/javascript">
 function bar() 
      //do stuff
 
<input type="text" name="foo" onKeyUp="return bar()" />

但如果你不想使用 HTML 事件,你可以尝试使用 jQuerys .change() 方法

$('.target').change(function() 
   //do stuff
);

在这个例子中,输入必须有一个类“目标”

如果您要拥有多个文本框,当它们的文本被更改并且您需要它们的数据时,您希望执行相同的操作,那么您可以这样做:

$('.target').change(function(event) 
   //do stuff with the "event" object as the object that called the method
);

这样您就可以对使用同一类的多个文本框使用相同的代码,而无需重写任何代码。

【讨论】:

jquery的change事件是用keyup事件实现的吗? @user775187 不,我认为这是它实现的 onChange 事件,因为您还可以将 change 事件用于单选按钮、选择列表、复选框等。 -1: “但如果你不想使用 html 事件,你可以尝试使用 jQuerys .change() 方法。”在 html 中使用 event 属性和使用 jQuery 之间有很多选择。没有的建议相当具有误导性。最重要的是,从您的回答中也不太清楚这两件事实际上绑定到完全不同的事件。 请参阅此以获得最新答案:***.com/a/26202266/1211622【参考方案4】:

好吧,除非我误解你可以使用onChange 属性:

<input type="text" onChange="return bar()">

注意:在 FF 3(至少)中,直到某些用户通过单击远离元素、单击 Enter 或其他方式确认它们被更改后才会调用它。

【讨论】:

【参考方案5】:

在您稍后失去焦点之前,onChange 不会触发。如果您想对各种瞬时变化非常严格,请使用:

<input
   type       = "text" 
   onchange   = "myHandler();"
   onkeypress = "this.onchange();"
   onpaste    = "this.onchange();"
   oninput    = "this.onchange();"
/>

【讨论】:

以上是关于html文本输入onchange事件的主要内容,如果未能解决你的问题,请参考以下文章

文本框 onChange 事件和 Datepicker onSelect 冲突

react input 输入中文拼音和onChange事件的交互

如何在事件 onChange 上设置超时

EasyUI的combobox控件使用onchange事件之后,输入文本的时候下拉列表框检索功能不再可用。

反应 Typescript 输入 onChange 事件类型?

文本框内容改变事件(onchange)