Cmd +文本选择不仅仅允许在文本字段中输入数字

时间:2015-04-27 12:36:31

标签: javascript jquery html browser input

我试图在Firefox for Mac上解决一个奇怪的问题,如果我只允许数字作为文本字段的输入,我就无法选择CTRL + A的文本。 我找到了解释问题的小提琴:LINK

有没有人知道为什么,以及如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

使用事件的metaKey属性来查找是否按下了cmd并将其传递而未经验证。

if((e.metaKey || e.ctrlKey) && e.which == 97) {
          return true
      }

fiddle

答案 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);

此代码将在任何输入状态更改事件中从输入中删除所有非数字字符。