仅允许使用Javascript在文本框中使用数值

仅允许使用Javascript在文本框中使用数值,javascript,Javascript,我想只允许在文本中输入数字值,如果用户输入字母字符,它应该警告用户。 对优化和简短的javascript代码有什么建议吗 function isNumber(n) { return !isNaN(parseFloat(n)) && isFinite(n); } 从使用以下代码 function numericFilter(txb) { txb.value = txb.value.replace(/[^\0-9]/ig, ""); } 在钥匙打开时叫它进来 <i

我想只允许在文本中输入数字值,如果用户输入字母字符,它应该警告用户。 对优化和简短的javascript代码有什么建议吗

function isNumber(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}

使用以下代码

function numericFilter(txb) {
   txb.value = txb.value.replace(/[^\0-9]/ig, "");
}
在钥匙打开时叫它进来

<input type="text" onKeyUp="numericFilter(this);" />


此代码使用
事件
对象的
.keyCode
属性检查输入到给定字段中的字符。如果按下的键是数字,则不执行任何操作;否则,如果是字母,则提醒“错误”。如果两者都不是,则返回false

HTML:


JS:

(功能(a){
a、 onkeypress=功能(e){

如果(e.keyCode>=49&&e.keyCode=97&&e.keyCode,这里有一个解决方案,阻止所有非数字输入进入文本字段

html

<input type="text" id="numbersOnly" />
var input = document.getElementById('numbersOnly');
input.onkeydown = function(e) {
    var k = e.which;
    /* numeric inputs can come from the keypad or the numeric row at the top */
    if ( (k < 48 || k > 57) && (k < 96 || k > 105)) {
        e.preventDefault();
        return false;
    }
};​

javascript

<input type="text" id="numbersOnly" />
var input = document.getElementById('numbersOnly');
input.onkeydown = function(e) {
    var k = e.which;
    /* numeric inputs can come from the keypad or the numeric row at the top */
    if ( (k < 48 || k > 57) && (k < 96 || k > 105)) {
        e.preventDefault();
        return false;
    }
};​
var input=document.getElementById('numbersOnly');
input.onkeydown=功能(e){
var k=e,其中;
/*数字输入可以来自键盘或顶部的数字行*/
如果((k<48|k>57)和(k<96|k>105)){
e、 预防默认值();
返回false;
}
};​

请注意,还应允许使用“系统”键

    $(element).keydown(function (e) {
    var code = (e.keyCode ? e.keyCode : e.which), value;
    if (isSysKey(code) || code === 8 || code === 46) {
        return true;
    }

    if (e.shiftKey || e.altKey || e.ctrlKey) {
        return ;
    }

    if (code >= 48 && code <= 57) {
        return true;
    }

    if (code >= 96 && code <= 105) {
        return true;
    }

    return false;
});

function isSysKey(code) {
    if (code === 40 || code === 38 ||
            code === 13 || code === 39 || code === 27 ||
            code === 35 ||
            code === 36 || code === 37 || code === 38 ||
            code === 16 || code === 17 || code === 18 ||
            code === 20 || code === 37 || code === 9 ||
            (code >= 112 && code <= 123)) {
        return true;
    }

    return false;
}
$(元素).keydown(函数(e){
var代码=(e.keyCode?e.keyCode:e.which),值;
if(isSysKey(代码)| code===8 | code==46){
返回true;
}
if(e.shiftKey | | e.altKey | | e.ctrlKey){
返回;
}

如果(code>=48&&code=96&&code=112&&code@Shane,您可以随时中断代码,任何用户都可以按住任何文本键,如(hhhhhhhh),您可以允许保留该值不变

为了安全起见,请使用以下方法:

$("#testInput").keypress(function(event){
而不是:

$("#testInput").keyup(function(event){

我希望这会对某些人有所帮助。

//在文本框中只输入数值的解决方案

$('#num_of_emp').keyup(function () { 
    this.value = this.value.replace(/[^0-9.]/g,'');
});
对于输入框,例如:


仅用于文本框中数值的Javascript::

<input type="text" id="textBox" runat="server" class="form-control" onkeydown="return onlyNos(event)" tabindex="0" /> 


    <!--Only Numeric value in Textbox Script -->
        <script type="text/javascript">
            function onlyNos(e, t) {
                try {
                    if (window.event) {
                        var charCode = window.event.keyCode;
                    }
                    else if (e) {
                        var charCode = e.which;
                    }
                    else { return true; }
                    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
                        return false;
                    }
                    return true;
                }
                catch (err) {
                    alert(err.Description);
                }
            }
        </script>
        <!--Only Numeric value in Textbox Script -->

函数onlyNos(e,t){
试一试{
if(window.event){
var charCode=window.event.keyCode;
}
若否(e){
var charCode=e.which;
}
else{return true;}
如果(字符码>31&(字符码<48 | |字符码>57)){
返回false;
}
返回true;
}
捕捉(错误){
警报(错误描述);
}
}

Posible replication of:出于对上帝的爱(以及专业情感网站)的可能复制,不要使用
onkeyup
。请参阅。这里必须使用
onkeyup
,因为它会在键入后替换当前文本。如果使用其他方法,如防止值
onkeydown
需要手动处理删除和退格密钥,并与@AndyE保持一致。
onkeyup
确实很糟糕,尤其是如果用户只是粘贴使用鼠标输入值click@AndyE的链接已失效,但他和Baby是对的。不要。使用。键控。那么为什么不将该问题标记为重复问题?这将减少退格,并删除您到底会做(或推荐)什么诸如此类的事情?即使列出0..9中的所有数字并对照它们进行检查也是一个更好的解决方案。没有人能够通过阅读这段代码来了解您在做什么。实际上,他只是想知道,如果他有一个数字,他说他想要“仅”字段中的数字字符,不仅仅是为了知道它们是否已键入;以及是否键入(字母)然后警告用户。我知道
.keyCode
部分可能会让人发火,但我需要一种更快的方法来做到这一点。OP是否要求使用jquery解决方案?我是否使用了jquery?或者我自己制作了$函数?您好。虽然您的代码可能会解决问题,但请对代码的功能进行一些说明。具体来说,它的功能有哪些不同以前的答案是什么?
<input type="text" id="textBox" runat="server" class="form-control" onkeydown="return onlyNos(event)" tabindex="0" /> 


    <!--Only Numeric value in Textbox Script -->
        <script type="text/javascript">
            function onlyNos(e, t) {
                try {
                    if (window.event) {
                        var charCode = window.event.keyCode;
                    }
                    else if (e) {
                        var charCode = e.which;
                    }
                    else { return true; }
                    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
                        return false;
                    }
                    return true;
                }
                catch (err) {
                    alert(err.Description);
                }
            }
        </script>
        <!--Only Numeric value in Textbox Script -->