js如何实现一个文本框只能输入数字 且是100的倍数

js如何实现一个文本框只能输入数字 且是100的倍数?

阅读 14.3k
4 个回答
phpvar a = 123,b = 200;
/\d/.test(a) && a % 100 == 0;//false
/\d/.test(b) && b % 100 == 0;//true

用keydown过滤掉数字以外的,然后再乘100

<input  id="num" onkeydown="onlynum();"/>


        <script>

                function onlynum(){
                    if ( ! ((event.keyCode >= 48 && event.keyCode <= 57 ) || (event.keyCode >= 96 && event.keyCode <= 105 ) || (event.keyCode == 8 )))
                        event.returnValue = false ;
                  }

        </script>

没写100的倍数,但是应该差不多是这个样子。
但是为了使其能更具有普遍的兼容性,最好用event.keyCode|| event.which.

===差不多就是这个样子,自己试一下吧====

<!DOCTYPE html>
<html>
<head>
    <title>Number Entry</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script src="http://code.jquery.com/jquery-1.11.1.js"></script>


<script>

$(function(){
    var keyupTimeout;
    $('#numberEntry').on("keyup",function(ev){
        var keycode = ev.which;//keycode就是按键的编码
        var currentValue=$('#numberEntry').val();
        currentValue=parseInt(currentValue,10)||0;
        currentValue=currentValue/100;
        clearTimeout(keyupTimeout);
        if((!(keycode>=48&&keycode<=57)||(keycode>=96&&keycode<= 105))&&(keycode!==8)){
            $('#numberEntry').val($('#numberEntry').val().substring(0,$('#numberEntry').val().length-1));
            return;
        }
        keyupTimeout=setTimeout(function(){
                if((keycode>=48&&keycode<=57)||(keycode>=96&&keycode<= 105)||keycode==8){
                    if(Math.floor(currentValue) !== currentValue){
                        $('#numberEntry').val('');
                    }
                }
            },400);
    });

});
</script>


</head>

<body>

输入数字且是100的整数倍:
<input type="text" value="" id="numberEntry">



</body>
</html>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏