使用.numeric

时间:2017-05-05 16:52:08

标签: javascript jquery

我试图将输入限制为小数点前最多两个整数,最后一个最大值。 (例如00.0)我一直在尝试使用.numeric进行此工作,可以找到here

我的电话看起来像这样。

$(".setOneNumDec").numeric({
    negative: false,
    decimal: ".",
    scale: 3,
    decimalPlaces: 1
});

目前,一个小数位的限制正在起作用,但插件仍然允许小数点前的任意数量的整数。

1 个答案:

答案 0 :(得分:2)

您使用的插件让我们说过时了。它已经2年了(或者之后没有任何变化),而现在任何现代浏览器(甚至IE> 10)都可以处理输入元素上的number类型。那么为什么要使用你不需要的插件呢。



var element = document.querySelector('input[type="number"]');
element.addEventListener("keyup", function(event){

    var currentChar = parseInt(String.fromCharCode(event.keyCode), 10);
    // the String.fromCharCode... is a special trick 
    // which is nicely explained here: 
    // http://stackoverflow.com/a/25060122/2008111

    if(!isNaN(currentChar)) {
        var nextValue = this.value + currentChar;
        
        // check if next value is bigger then 100 the reset to 99.9
        if(parseInt(nextValue, 10) > 100) {
            return this.value = 99.9;
        }
        
        // decimal check here. if more then 2 decimal places remove the last one
        if((this.value.split('.')[1] || []).length > 1) {
          return this.value = this.value.slice(0, -1);
        }
    }
    return false;
});

<input type="number" min="0.1" max="99.9" step="0.1" />
&#13;
&#13;
&#13;

同样在测试时:即使在输入字段内使用箭头,看看它有多好用。