仅接受输入javascript中的数字和选项卡

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了仅接受输入javascript中的数字和选项卡相关的知识,希望对你有一定的参考价值。

我有一些文本字段,我希望用户只能编写数字,也希望TAB可以轻松地转到其他输入。我有这个javascript代码:

function validateNumbers(event) {

if(event.charCode >= 48 && event.charCode <= 57){
  return true;
 }
 return false;        
}

html中我使用onkeypress属性来调用该函数。

您能否帮助我使用我的代码来接受TAB密钥?

答案

您可以在输入标记中使用tabindex="1"属性来指定下一个需要使用1,2等数字进行聚焦的输入。

Here is an example based on your code

另一答案

请注意,此代码无法在移动浏览器中使用。

$(document).ready(function() {
    $("#txtboxToFilter").keydown(function (e) {
        // Allow: backspace, delete, tab, escape, enter and .
        if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
             // Allow: Ctrl+A, Command+A
            (e.keyCode === 65 && (e.ctrlKey === true || e.metaKey === true)) || 
             // Allow: home, end, left, right, down, up
            (e.keyCode >= 35 && e.keyCode <= 40)) {
                 // let it happen, don't do anything
                 return;
        }
        // Ensure that it is a number and stop the keypress
        if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
            e.preventDefault();
        }
    });
});
另一答案

而不是keypress,处理keydown并删除所有非数字值

var input = document.querySelectorAll( "input" );

Array.from( input ).forEach( function( el ){
   el.addEventListener( "keyup", validateNumbers );
});

function validateNumbers(event) 
{
    var inputObj = event.currentTarget;
    inputObj.value = inputObj.value.replace(/[^0-9]/g, "");
}
<input/>

<input/>

以上是关于仅接受输入javascript中的数字和选项卡的主要内容,如果未能解决你的问题,请参考以下文章

如何将输入限制为仅接受数字?

Xamarin.Forms Shell 选项卡仅显示列表中的最后一个选项卡

JavaScript 在javascript中仅接受来自键盘的数字数据

如何仅刷新DEFAULT浏览器中的特定选项卡,其他选项卡不应刷新

如何使用仅接受数字的输入范围创建 PasswordBox?

在浏览器中访问其他选项卡的内容