使用javascript限制输入标记中的数字值

时间:2013-11-21 07:56:55

标签: javascript html input

我正在创建一个表单,我希望输入标记只接受数字,我也希望将数字限制为0 - 20.

这是我的HTML代码:

<input type="text" name="three" class="actual" id="three" maxlength="2" onkeypress="return ForNumbers(event)" />

这是我的javascript代码:

    <script type="text/javascript">
        function ForNumbers(evt){
        var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57))
    return false;
return true;
        }
    </script>

3 个答案:

答案 0 :(得分:5)

应该能够做到这样的事情:

if (input.value < 0) input.value = 0;
if (input.value > 20) input.value = 20;

如果这就是你的意思那么简单。

当输入的值发生变化(onChange)时,你可以通过它们看到限制来运行它。

全功能:

HTML:

<input type="text" onchange="limiter(this);" />

使用Javascript:

function limiter(input) {
   if (input.value < 0) input.value = 0;
   if (input.value > 100) input.value = 100;
}

Working Demo

答案 1 :(得分:2)

如果您需要支持旧版浏览器,请尝试以下操作:

    function ForNumbers(evt){
        var charCode = (evt.which) ? evt.which : event.keyCode;

        if (
        //0~9
        charCode >= 48 && charCode <= 57 ||
           //number pad 0~9
           charCode >= 96 && charCode <= 105 ||
        //backspace
           charCode == 8 ||
        //tab
        charCode == 9 ||
        //enter
        charCode == 13 || 
        //left, right, delete..
        charCode >= 35 && charCode <= 46
        )
        {
        //make sure the new value below 20
        if(parseInt(this.value+String.fromCharCode(charCode), 10) <= 20) 
            return true;
        }

        evt.preventDefault();
        evt.stopPropagation();

        return false;
    }

http://jsfiddle.net/3StSM/2/

它也适用于:

  <input id="numIpt" type="number" min="0" max="20" maxlength="2" />

答案 2 :(得分:0)

使用html类型编号和内嵌元素min="1"max="20"来限制输入字段。

<input type="number" min="1" max="20" />