我试图在Firefox for Mac上解决一个奇怪的问题,如果我只允许数字作为文本字段的输入,我就无法选择CTRL + A
的文本。
我找到了解释问题的小提琴:LINK
有没有人知道为什么,以及如何解决这个问题?
答案 0 :(得分:2)
使用事件的metaKey
属性来查找是否按下了cmd
并将其传递而未经验证。
if((e.metaKey || e.ctrlKey) && e.which == 97) {
return true
}
答案 1 :(得分:0)
简单回答:不用费心去检查用什么键来输入值,因为用户输入有数千种方式可以在一个字段中结束,这样就不会触发keyup / keydown事件(语音识别,复制+粘贴,手写识别,来自开发控制台的$('.foo').val('bar')
等),并且有很多方法可以复制+粘贴跨平台,所以检查event.ctrlKey +' c'或类似的是徒劳的战斗。
而是做这样的事情:
function forceNumeric(){
$(this).val($(this).val().replace(/[^0-9]+/gi,''));
}
$('input[type="number"]').on('propertychange input', forceNumeric);
此代码将在任何输入状态更改事件中从输入中删除所有非数字字符。