keyup event not firing

Is anybody else having problems with the keyup event in iOS 9 not firing?

Just a simple test bed replicates the issue for me.

<input id="txtInput" />

Vanilla JS:

document.getElementById('txtInput').onkeyup = function () {
    console.log('keyup triggered');
}

jQuery:

$('#txtInput').on('keyup', function () {
    console.log('keyup triggered');
});

Neither fire...


I suggest using the keypress event on browsers with touch screens. I know that you can't really detect touch screen screens, though, so it leaves you with a few options that your situation will likely dictate.

  • Attach both events keyup and keypress . This would likely be dependent on how much processing is going on and if you are getting double-fires in some browsers.
  • Attempt to determine whether the browser is a touch screen (like using Modernizr), and then attach a fallback handler like change .
  • Either way, you end up with two event listeners.


    $('#yourid').bind('keypress', function(e) {
        // This will work
    });
    

    It's not pretty, but a work around is to bind to keydown to capture which key has been pressed, and input if you want to obtain the value, including the key typed:

    (function () {
        var keyCode;
    
        $('#txtInput')
            .on('keydown', function (e) {
                // value not updated yet
                keyCode = e.keyCode;
    
                // Enter key does not trigger 'input' events; manually trigger it
                if (e.keyCode === 13) $(this).trigger('input');
            })
            .on('input', function (e) {
                console.log(keyCode, this.value);
            });
    }());
    

    If you type 'a' the following occurs:

  • keydown fires.
  • e.keyCode is set to the ASCII value of the key pressed.
  • this.value is '' (ie the same before 'a' has been typed).
  • input fires.
  • e.keyCode is undefined .
  • this.value is 'a' .
  • You can also manually trigger an input event if the enter (13) key is pressed; input isn't fired by this key by default.

    链接地址: http://www.djcxy.com/p/88198.html

    上一篇: 关于字体文件(.eot .svg .ttf .woff和.woff2)的角色和用法

    下一篇: 关键事件不发射