限制用户输入小数点

注:该方法不支持除支付宝外的手机浏览器(其他暂时不知道,但微信是不行的),因为手机浏览器会调用手机软键盘,手机软键盘是不支持我们查看e.keyCode或者e.key的,但是支持支付宝浏览器,因为支付宝浏览器在你input设置为number类型时会调起支付宝自带数字键盘,该数字键盘支持e.keyCode和e.key操作(微信不会调起微信自带的软键盘)

我们在input之前进行keydown判断

 $(document).on('keydown','#textIpt',function(e){
        console.log($(this).val())
        console.log(e.key)
        if(e.key == '.')
            {
                alert("请输入正确的数值,只允许输入整数!");
                $(this).val(0);
                return false;
            }
    else if(code == 88 || code == 108 ||code == 13 ){//支付宝要添加这个判断,跳过enter键和x键的判断

       }else {
           $(this).val(0)
       }
    })

之后进行input操作(进行一些最大值,最小值,默认值的修改)

  $(document).on('input','#textIpt',function(){

        if(Number($(this).val())>=Number(5)){
            $('#textIpt').val(5)
            amountNum = Number(5);
            return
        }
        else if($(this).val()<1){
            $('#textIpt').val('1')
        }
        else {
            amountNum = Number($(this).val());
            $('#textIpt').val(Math.floor(amountNum))
          }
    })

下面就一行html(默认值是1,在keydown操作时会先将默认值改成0,然后在input的时候赋值,否则的话是不能修改数值的,不管你输入什么,假如你最大值是5的话,你1开头,后面不管你输入什么数字都是大于等于10的,所以要先改成0,让用户可以输入小于10的数值,并且在input方法中要将他转换为Number类型,否则会出现04这样的数值)


lineFriends.gif

你可能感兴趣的:(限制用户输入小数点)