js禁用firefox中的退格功能
Posted
技术标签:
【中文标题】js禁用firefox中的退格功能【英文标题】:js disabling backspace functionality in firefox 【发布时间】:2012-08-27 12:48:05 【问题描述】:我有以下 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();
任何人都可以看看并提出一个修复 Firefox 以不阻止退格键作用于文本字段的方法吗?
可能我猜,为退格字符添加正则表达式就可以了。有谁知道,如何添加正则表达式以匹配 backspace
编辑:
此外,上面的代码应该被 Tab 键的行为打断,我无法使用 Tab 键跳转到表单中的下一个字段。
【问题讨论】:
【参考方案1】:见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【讨论】:
这完全有帮助!你也可以拦截tab键吗?已更新问题请看。 非常感谢!!!也只是为了其他人的信息here 是各种键的键码列表。【参考方案2】:我不确定退格正则表达式,但这应该也可以工作
$("#myInput").bind('keyup', function()
val1 = $(this).val();
$(this).val(val1.replace(/[^0-9.]/g,''));
);
您可以取消绑定并直接附加 keyup
小提琴 - jsfiddle
【讨论】:
这也很有帮助。但是另一种解决方案似乎更流畅,因为输入字段中根本没有出现无效字符。有了这个解决方案,我们可以在输入字段中看到那些字符。感谢您的帮助。以上是关于js禁用firefox中的退格功能的主要内容,如果未能解决你的问题,请参考以下文章
Android:WebView/BaseInputConnection 中的退格键