我试图禁止在文本输入中输入所有其他字符。
因为要获得$
,你必须按shift键和4键。

键码只与键有关。$
是一个字符,通过 Shift 和 4 两个键实现。使用onkeydown
时,$
没有明确的键码
编辑:Edward 指出onkeypress
使用组合键,并且确实有组合键代码。每天学习新的东西:)
Here's some code,从 MDN 提供的onkeydown
示例中编辑,用于检测按键代码。
Here's the fiddle使用this S.O. post的帮助更新为 Firefox 友好。如果您以这种方式摆动,JQuery 解决方案也可以工作。
然后 DONT 用这种方式来解决你的问题:因为你不能预测每个键盘布局总是有 $符号输入为 shift + 4.
你仍然可以得到 keycode 4,并检查是否按下了 shift,但你不能确定这一点!!
因此,最好简单地替换字段中的所有非法字符(在提交数据之前)。认为:str.replace()
您还可以在输入框的 onkeyup 事件中检查非法字符集,从而在键入时有效地替换所有非法字符!
像:onkeyup="this.value.replace(/[your illegal characters]/gi, '')"
这应该做你想要的。
请注意:您永远不应该信任浏览器输入,并且仍然应该在您的接收脚本中过滤此输入!
祝你好运!!
$
没有键码,因为它不是有效的键-它必须通过某种移位器访问。
通常,您将执行检查以查看移位器是否处于活动状态,并在相关键上侦听keypress
事件。
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; }
});
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(51条)