【发布时间】:2014-10-30 21:34:20
【问题描述】:
我试图阻止除数字(字符上方和数字键盘上的那些)和减号 (-) 和加号 (+) 以及逗号 (,) 之外的所有击键。
就像现在一样,它只输入了我输入的两倍(例如 2 是 22),它还将当前值替换为新数字,但对于加号、减号和逗号,它插入 ½、m、和 k。我也想解封网站上常用的典型按键,比如F5、Ctrl+R、Shift+R、delete、home和end,但是不知道怎么解封F5、Shift+R,和 Ctrl + R。
$('body').on('keydown', 'input[name="textfield-correction-temperature"]', function(c) {
console.log(c.keyCode);
if(c.keyCode != 107 && c.keyCode != 109 && c.keyCode != 188 && c.keyCode > 31 && (c.keyCode < 48 || c.keyCode > 57)) {
return false;
} else {
var key = String.fromCharCode(c.which);
$(this).val(key);
}
});
【问题讨论】:
-
对于第一个问题:您为不需要的输入返回 false(这没关系),但如果输入有效,则手动添加输入,而不取消它。这意味着你添加一个字符,系统添加一个字符,导致重复。你应该总是返回 false。
-
解决了重复值的问题 :) 谢谢!
标签: javascript keycode