本文介绍了关键字事件的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){}); 不适用于此。

以下是完整代码:

Only alert works.
Everything works on Opera,but not on Chrome and IEAlso 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.

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

10-12 03:18