【问题标题】:Limit number input to range将数字输入限制在范围内
【发布时间】:2014-10-30 13:01:55
【问题描述】:

我想将用户输入限制在特定范围内(-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

【问题讨论】:

    标签: javascript jquery range


    【解决方案1】:

    考虑在值超出范围时对其进行修改。这使您可以包含小数等。

    $('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" />

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-22
      • 2018-08-30
      • 2023-03-04
      • 2015-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-07
      相关资源
      最近更新 更多