gpt4 book ai didi

javascript - js在firefox中禁用退格功能

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

我有以下 javascript 来防止用户在文本字段中输入无效字符。它在 chrome 中运行良好,但在 firefox 中运行良好。它阻止在 firefox 的文本字段中输入 backspace 键。

function onlyNumbers(evt) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
key = String.fromCharCode( key );
var regex = /[0-9]|\./;
if( !regex.test(key) ) {
theEvent.returnValue = false;
if(theEvent.preventDefault) theEvent.preventDefault();
}
}

任何人都可以看看并提出修复 firefox 的方法,以防止退格键作用于文本字段吗?

可能我猜,为退格字符添加正则表达式就可以完成这里的工作。有谁知道,如何添加匹配 backspace

的正则表达式

编辑:

此外,上面的代码应该会被 Tab 键行为打断,我无法使用 Tab 键跳转到表单中的下一个字段。

最佳答案

参见 http://jsfiddle.net/8ZJZD/1/

var el=document.getElementById('cnfMobileNo');
el.onkeydown=function onlyNumbers(evt) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
if(key===8){return;}
key = String.fromCharCode(key);
var regex = /[0-9]|\./;
if( !regex.test(key) ) {
theEvent.returnValue = false;
if(theEvent.preventDefault) theEvent.preventDefault();
}
}

只需使用if(key===8){return;}

编辑:

如果你想排除更多的键,使用

var el=document.getElementById('cnfMobileNo');
el.onkeydown=function onlyNumbers(evt) {
var theEvent = evt || window.event,
key = theEvent.keyCode || theEvent.which,
exclusions=[8,9]; /*Add exceptions here */
if(exclusions.indexOf(key)>-1){return;}
key = String.fromCharCode(key);
var regex = /[0-9]|\./;
if( !regex.test(key) ) {
theEvent.returnValue = false;
if(theEvent.preventDefault) theEvent.preventDefault();
}
}

在这里查看:http://jsfiddle.net/8ZJZD/2/

使用alert(key)可以知道每个键的keyCode

(在 key = String.fromCharCode(key) 之前)。

你也可以排除

  • 方向键:37、38、39、40
  • 输入:13
  • 上下文菜单:93
  • 开始结束:36,35

关于javascript - js在firefox中禁用退格功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12236721/

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