jquery – 如果在keyup上添加了char,则不会触发输入中的Google Chrome更改事件

$('input#not-gonna-work').bind({
    keyup: function(){
        console.log('Typed a key');
        $(this).val($(this).val() + '.');// try with any other char
    },change: function(){
       console.log('I\'m a changed input');
    }
});

在这个简化的jsfiddle示例中提出了这个错误.
与此错误相关的问题是我有一个正在构建的财务应用程序,如果输入数据发生更改,我需要显示“保存更改”按钮.因为我需要在keyup上立即插入千位分隔符(如果需要),这个bug真的让我烦恼并破坏了这个功能.

要重现它,请转到jsfiddle示例,在第一次输入时打开控制台中的chrome类型,keyup事件将被正确触发,而不是使用制表符或在其外部单击的非焦点输入,并且不会触发更改事件.对其他输入执行相同操作并将触发更改.

我在Firefox中对此进行了测试,它按预期工作.

我正在使用的Chromium版本是14.0.835.202(Developer Build 103287 Linux)Ubuntu 11.10

尝试直接从Chrome网站新安装的Google Chrome 15.0.874.106.

我可以在更改事件上插入分隔符,但由于用户将输入许多7位数字,因此在键入时插入分隔符会更好.

解决方法

我在IE9中尝试过它,它具有与Chrome相同的行为.

我不认为这是一个错误.

在HTML元素上使用.val(value)将重置“手动更改”标志,因此不会发生更改事件(因为用户在val()操作后不会手动更改任何内容).

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: <span id=&quot...
jQuery 添加水印 <script src="../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...