我在文本输入上有一个jquery更改事件的问题,它在Firefox和IE中按预期工作,但在Chrome中没有。我还在文本输入上有一个键盘事件来操作输入的输入,但是当输入完成时我需要运行一些额外的代码。我尝试使用'模糊'事件和'焦点'事件,就像这里有人建议作为替代品一样,但后来我根本无法改变焦点 - 输入一直以某种方式抓住它。这是代码:
$('.textInput').keyup(function(event) { /* do stuff */ });
$('.textInput').change(function(event) { alert('Changed!'); /* do other stuff */ });
和html:
<input type="text" class="textInput" value="" />
我正在使用jQuery 1.6.3。任何建议将不胜感激。 小时。
答案 0 :(得分:11)
除非输入焦点切换到其他控件
,否则不会触发更改事件答案 1 :(得分:0)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$('.textInput').keyup(function (event) {
var obj = $(this);
if ((event.keyCode ? event.keyCode : event.which) === 13) {
$('#result').text('Enter has been triggered.');
}
}); ;
$('.textInput').change(function (event) {
var obj = $(this);
$('#result').text('Input text has been changed:' + obj.val());
}); ;
});
</script>
</head>
<body>
<span id="result"></span>
<br />
Enter some text and press enter:
<input type="text" class="textInput" value="" />
</body>
</html>
答案 2 :(得分:0)
实际上,Google Chrome上存在一个错误,如果“keyup”事件更改了某些内容,则会导致“更改”事件无法触发:
https://code.google.com/p/chromium/issues/detail?id=92492
这个问题似乎从2013年5月2日开始。
答案 3 :(得分:0)