限制数量输入到范围

时间:2014-10-30 13:01:55

标签: javascript jquery range

我想将用户输入限制在特定范围(-90到90)。数字可以是整数或小数。默认值必须为0。我想要使用HTML5 min / max属性。

这是我的HTML:

<input type="number" value="0" />

这就是我的尝试:

$('input').on('input', function () {

    var value = $(this).val();
    $(this).val(Math.max(Math.min(value, 90), -90));
});

这是错误的,因为它不会让我删除默认值(因此我无法为负数输入-或为十进制数输入.

所以我最终这样做了:

$('input').on('input', function () {

    var value = $(this).val();

    if ((value !== '') && (value.indexOf('.') === -1)) {

        $(this).val(Math.max(Math.min(value, 90), -90));
    }
});

那更好,但现在的问题是我可以输入超出我定义范围的90.1

建议?

JSFiddle demo

1 个答案:

答案 0 :(得分:3)

当值超出范围时,请考虑修改值。这允许您包括小数等。

$('input').on('input', function () {
    
    var value = this.value;
    
    if (value !== '') {
        value = parseFloat(value);
        
        if (value < -90)
            this.value = -90;
        else if (value > 90)
            this.value = 90;
    }
    
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="number" value="0" />