当我们只允许使用java脚本在文本框中的数字时允许tab键

vis*_*ddy 1 javascript regex

我写了一个java脚本,只允许数字,逗号,点.我将它应用于四个文本框.我的问题是我有10个文本框,它们采用不同类型的数据,其中四个我应用了java脚本.我可以在其他文本框上使用tab键,但我无法在java脚本应用文本框上使用移动courser.在我的剧本中我有什么变化......谢谢.

Java脚本: -

function isNumberCommaDot(evt) {
         var theEvent = evt || window.event;
         var key = theEvent.keyCode || theEvent.which;
         key = String.fromCharCode(key);
         if (key.length == 0) return;
         var regex = /^[0-9,\9\b]*\.?[0-9]*$/;
         if (!regex.test(key)) {
             theEvent.returnValue = false;
             if (theEvent.preventDefault) theEvent.preventDefault();
         }
     }
Run Code Online (Sandbox Code Playgroud)

我在正则表达式中使用了\ 9,但仍然不接受tab键.(9是ASCII字符,用于TAB键)

Szi*_*zsi 6

你可以检查它是否是之前的标签按下,只是跳过处理

function isNumberCommaDot(evt) {
     var theEvent = evt || window.event;
     var key = theEvent.keyCode || theEvent.which;

     if (key === 9 ) { //TAB was pressed
        return;
     }

     key = String.fromCharCode(key);
     if (key.length == 0) return;
     var regex = /^[0-9,\9\b]*\.?[0-9]*$/;
     if (!regex.test(key)) {
         theEvent.returnValue = false;
         if (theEvent.preventDefault) theEvent.preventDefault();
     }
 }
Run Code Online (Sandbox Code Playgroud)

你可以在这里找到更多信息