关键字事件的preventDefault()无法正常工作 [英] preventDefault() on keyup event not working

查看:130
本文介绍了关键字事件的preventDefault()无法正常工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我无法 preventDefault()工作。

以下是我尝试过的一些不同的代码变体:

Here are some different code variations I have tried:

首先:

$(document).keyup(function (evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode;
    if (charCode == 192) {
        alert('192');
        return false;
    }
});

第二名:

$(document).keyup(function (evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode;
    if (charCode == 192) {
        alert('192');
        evt.preventDefault();
    }
});

第三名:

$(document).keyup(function (evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode;
    if (charCode == 192) {
        alert('192');
        evt.preventDefault();
        return false;
    }
});

仅警报有效。

一切适用于Opera,但不适用于Chrome和IE
还试过 keydown keypress
On keypress 脚本不起作用。
$('#thetext')。keydown(function(evt){}); 不适用于此。

以下是完整代码: http://bbullett.tk/test/kakey。 html

Only alert works.
Everything works on Opera,but not on Chrome and IE Also tried keydown and keypress. On keypress script doesn't work. $('#thetext').keydown(function(evt){}); neither works this.
Here is whole code: http://bbullett.tk/test/kakey.html

Key 192 = `

我正在尝试插入一些文字或符号而不是`

I'm trying to insert some text or symbol instead of `

推荐答案

keyup 事件为时已晚,无法调用 preventDefault ,请尝试收听 keypress keydown 代替。

Listening to keyup event is too late for calling preventDefault, try listening to keypress or keydown instead.

$('input[type=text], textarea').on('keydown', function(event){
    if (event.which == 192) {
        console.log('192');
        event.preventDefault();
    }
});

请注意,jQuery规范化哪个属性并且它是跨浏览器。

Note that jQuery normalizes which property and it's cross-browser.

http://jsfiddle.net/763ys /

这篇关于关键字事件的preventDefault()无法正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆