如何将文本框中的输入限制为0-9?

时间:2015-10-01 11:17:59

标签: asp.net html5

我在以下示例中有此文本输入字段,该字段设置为仅接受数字:

<input type="number">

这里的实例:

https://jsfiddle.net/cL1ptdLv/1/

问题是我可以输入&#34; e&#34;,逗号,点等。但是在我的GUI中我需要将输入限制为只有数字0-9(整数),如235而不是2e35 。我怎么能这样做?

解决方案:

以下是基于suprabhat的回答的解决方案

在JQuery中:

$(".onlyNumber").keypress(function (evt) {
    if (!(evt.keyCode >= 48 && evt.keyCode <= 57))
        evt.preventDefault();
});

在html中我将名为onlyNumber的新类添加到我的输入框中:

<input type=number class="onlyNumber">

3 个答案:

答案 0 :(得分:0)

您用于文本框的代码是正确的。

您可以使用以下Javascript代码进行验证。

function isNumberKey(evt){
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57))
        return false;
    return true;
}

并在文本框中调用

<input type="number" onkeypress="return isNumberKey(event)"/>

答案 1 :(得分:0)

为文本框指定了三个事件处理程序,onkeypressondroponpaste

onkeypress事件处理程序中,我正在调用JavaScript函数IsNumeric。
此函数首先确定键盘键的ASCII代码,然后验证其ASCII code是否在4857范围内。
它还确保按下的键不是退格键或删除键等特殊键,如果是,那么它也被排除在外。

HTML标记

Numeric Value: <input type="text" id="text1" onkeypress="return IsNumeric(event);" 
   ondrop="return false;" onpaste="return false;" />
<span id="error" style="color: Red; display: none">* Input digits (0 - 9)</span>

<强>脚本

<script type="text/javascript">
    var specialKeys = new Array();
    specialKeys.push(8); //Backspace
    function IsNumeric(e) {
        var keyCode = e.which ? e.which : e.keyCode
        var ret = ((keyCode >= 48 && keyCode <= 57) || specialKeys.indexOf(keyCode) != -1);
        document.getElementById("error").style.display = ret ? "none" : "inline";
        return ret;
    }
</script>

Demo

答案 2 :(得分:0)

您可以尝试这样做。

<input type="number" OnKeyPress="return myFunction()" />

的JavaScript

function myFunction() {
    var e = event || window.event;  // get event object
    var key = e.keyCode || e.which; // get key cross-browser

    if (key < 48 || key > 57) { //if it is not a number ascii code
        //Prevent default action, which is inserting character
        if (e.preventDefault) e.preventDefault(); //normal browsers
            e.returnValue = false; //IE
    }
}