我正在寻找一个简单的也许 JS 来禁止撇号 onKeyUp 或 OnKeyPress 之类的东西。例如,每次用户按下一个键时,如果它是撇号(Jame's Pizza),则用空格替换它。我不想在 PHP 中处理它
我找到了一个代码,但它将 JS 绑定到我不想要的文本字段名称。我需要一些全球性的东西,
问问题
3637 次
2 回答
7
防止击键总是比追溯删除它更好。为此,您需要拦截keypress
事件(keyup
为时已晚):
document.getElementById('yourTextBoxID').onkeypress = function () {
if (event.keyCode === 39) { // apostrophe
// prevent the keypress
return false;
}
};
如果您只想阻止'
出现在框中,但希望 keypress 事件传播到父元素,请将 替换return false;
为event.preventDefault();
。(由 Eivind Eidheim Elseth 在评论中建议)
于 2012-08-17T15:08:29.203 回答
0
请找到以下功能。它抓取页面上的所有元素,并为每个input
元素分配事件处理程序。如果他们检测到撇号,它将调用该方法..keydown
keyup
preventDefault()
function listen(event, elem, func) {
if (elem.addEventListener) return elem.addEventListener(event, func, false);
else elem.attachEvent('on' + event, func);
}
listen('load', window, function() {
var inputs = document.getElementsByTagName('input');
for (var i = 0; i < inputs.length; i += 1) {
keyHandler(i);
}
function keyHandler(i) {
listen('keydown', inputs[i], function(e) {
if (e.keyCode === 222) { // 222 is the keyCode for apostrophe
e.preventDefault();
}
});
listen('keyup', inputs[i], function(e) {
if (e.keyCode === 222) { // 222 is the keyCode for apostrophe
e.preventDefault();
}
});
}
});
于 2012-08-17T15:12:33.103 回答