gpt4 book ai didi

jquery - 如何让 Firefox 理解箭头键和 % 和 ' 之间的区别

转载 作者:行者123 更新时间:2023-12-01 07:15:22 24 4
gpt4 key购买 nike

我有一个价格字段,我只想接受数字(我不喜欢默认的 html5 输入,如 input[number] 等),所以我写了这个:

<input type="text" name="price" placeholder="" onkeypress="validate(event)">

function validate(evt) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
key = String.fromCharCode( key );
var code = theEvent.keyCode || theEvent.which;
var regex = /[0-9]/;
if( !regex.test(key) && code != 8/*backspace*/ && code != 37/*left*/ && code != 39/*right*/ && code != 13/*enter*/ && code != 46/*delet*/ && code != 9/*tab*/){
theEvent.returnValue = false;
if(theEvent.preventDefault) theEvent.preventDefault();
};
};

正如您所看到的,添加了一些字符,例如左右箭头键、制表符等,以便更好地导航。它在 Chrome 中完美运行。在 Firefox 中,一些字符是无意添加的。例如左箭头键和%的键码是相同的!所以现在我的价格字段在 Firefox 中接受 %!我还发现了一个简单的正则表达式代码也有同样的问题。我怎样才能让 Firefox 理解?!

最佳答案

实际上%左箭头键keyCode并不相同。

  • %
    • .charCode == 37
    • .keyCode == 0
    • .which == 37
  • 向左箭头
    • .charCode == 0
    • .keyCode == 37
    • .which == 0

您需要修复程序逻辑,而不是通过 ... = theEvent.keyCode || 将代码混在一起。 theEvent.which.

(原始)键盘处理无论如何都是一团糟,直到浏览器开始实现 .key and .char正确且完整。

关于jquery - 如何让 Firefox 理解箭头键和 % 和 ' 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19510645/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com