问题描述
我无法 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()无法正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!