mtk*_*mtk 2 javascript regex firefox keycode textinput
我有以下javascript以防止用户在文本字段中输入无效字符.它在chrome中运行良好,但在firefox中运行不佳.它阻止backspace在firefox的文本字段中输入密钥.
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();
}
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以看看并建议修复firefox,以防止退格键作用于文本字段?
可能我想,为退格字符添加正则表达式可以在这里完成工作.有谁知道,如何添加正则表达式来匹配backspace
此外,上面的代码应该用Tab键行为中断,我无法使用Tab键跳转到表单中的下一个字段.
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();
}
}
Run Code Online (Sandbox Code Playgroud)
只是用 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();
}
}
Run Code Online (Sandbox Code Playgroud)
在这里看到:http://jsfiddle.net/8ZJZD/2/
您可以使用了解keyCode每个密钥alert(key)
(之前key = String.fromCharCode(key)).
你也可以排除