我有这个 jQuery 可以阻止按下回车键,我已经准备好接受一系列不允许的按键..
$('.form input').bind('keypress', function(e) {
var keys = [13];
for (var i = keys.length; i--;){
if(e.keyCode===keys[i]){
return false;
}
}
});
我想用 |
字符做类似的事情,但因为它是 220 的移位,我不需要阻止 \
被输入到表单中,如何限制该字符或使用修改键? (当然也会在服务器端处理它)。
我也知道特殊字符的键盘布局可能因本地化不同的键盘而异,因此可能有必要关注生成的字符而不是键本身(对此并不完全确定),但我不想引入大量开销
最佳答案
keypress
事件是关于字符,而不是按键。您可以直接将keyCode
与"|"
的字符编码("|".charCodeAt(0)
)进行比较,不用担心关于按下 Shift 键(可能并非所有键盘上都有)。
HTML:
<p>Try to type | in the box below.</p>
<input id="theInput" type="text" size="80">
JavaScript:
jQuery(function($) {
var keys = [13, "|".charCodeAt(0)];
$("#theInput").keypress(function(e) {
var index;
for (index = 0; index < keys.length; ++index) {
if (keys[index] === e.keyCode) {
display("Denied!");
return false;
}
}
});
function display(msg) {
$("<p>").html(msg).appendTo(document.body);
}
});
或作为 bažmegakapa points out ,因为你已经在使用 jQuery,你可以使用它的 inArray
功能:
jQuery(function($) {
var keys = [13, "|".charCodeAt(0)];
$("#theInput").keypress(function(e) {
if ($.inArray(e.keyCode, keys) !== -1) {
display("Denied!");
return false;
}
});
function display(msg) {
$("<p>").html(msg).appendTo(document.body);
}
});
关于javascript - 停止将字符输入到表单中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10399003/