我正在尝试禁止在文本输入中输入所有其他字符。
因为要得到$
你必须按shift-key 和4-key。我不确定您将如何获得这样的 keyCode?
键码仅与键有关。$
是一个字符,通过 Shift 和 4 两个键实现。$
使用时没有明确的键码onkeydown
编辑:爱德华指出,它onkeypress
使用组合键,并且确实有组合键码。每天学些新东西 :)
这是一些代码,从 MDN 提供的示例中编辑onkeydown
,用于检测按键键码。
这是使用此 SO post 的帮助更新为对 Firefox 友好的小提琴。如果您采用这种方式,JQuery 解决方案也可以工作。
然后不要使用这种方式来解决您的问题:因为您无法预测每个键盘布局都会始终将 $-sign 输入为 shift+4。
您仍然可以获得键码 4,并检查是否按下了 shift,但您不能确定这一点!!
因此,最好简单地替换字段中的所有非法字符(在您提交数据之前)。想一想:str.replace()
您还可以在输入框的 onkeyup 事件中检查您的非法字符集,在您键入时有效地替换所有非法字符!
喜欢:onkeyup="this.value.replace(/[your illegal characters]/gi, '')"
那应该做你想做的事。
请注意:您永远不应信任浏览器输入,并且仍应在接收脚本中过滤此输入!!!
祝你好运!!
没有密钥代码$
,因为它不是有效的密钥 - 它必须通过某种移位器访问。
通常,您将执行检查以查看移位器是否处于活动状态,并在keypress
相关键上监听事件。您的实例中的 QWERTY 布局是这样的:
var shiftPressed = false;
$(window).keydown(function(e) {
if(e.which == 16) { shiftPressed = true; }
if(e.which == 52 && shiftPressed)
{
// Do whatever here...
}
});
$(window).keyup(function(e) {
if(e.which == 16) { shiftPressed = false; }
});
onkeypress - Unicode CHARACTER 代码是:36
onkeydown - Unicode KEY 代码是:52