【发布时间】:2018-07-18 20:40:38
【问题描述】:
我需要有关我的 javascript/jQuery 代码的奇怪行为的帮助。
jQuery .change() 的简单文本输入仅在我单击页面或 chrome 控制台或按键盘上的某个键时执行,但在我在文本输入中键入文本时不会执行。
当然,我希望在每次更改文本输入后执行该代码,但现在看起来像:
- 我在文本输入中输入了一些内容
- 什么都没有发生
- 我单击文档中的任意位置或按一个键,比如“tab”
- 代码按预期运行
谁能解释一下这是怎么回事?
Му 代码很简单:
$('#search_field').change(function() {
alert("test")
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="search_field" class="form-control" id="search_field" placeholder="Search" />
【问题讨论】:
-
因为这是应该尝试的('input')
-
在元素的值被修改后,
change事件在文本输入上触发并且元素失去焦点。这是预期的行为。如果您希望在字段中输入内容时触发事件,请使用input、paste、keypress或keyup -
它在stackoverflow stackoverflow.com/questions/1443292/…中是同一个问题@
-
您可以简单地阅读更改事件实际触发的时间,例如这里:developer.mozilla.org/en-US/docs/Web/Events/change#Description
标签: javascript jquery