jQuery / javascript - 纠正输入min和max int无法正常工作

时间:2017-04-09 15:32:01

标签: javascript jquery

我有这个HTML:

<input type="number" name="eingangstuer_hoehe" min="70" max="200">

这是jQuery / javascript:

$("input").change(function(e) {
        var $this = $(this);
        var val = $this.val();
        var max = $this.attr("max");
        var min = $this.attr("min");


        if(val > min || val < max)
        {

        }
        else
        {
            if (val > max){
                e.preventDefault();
                $this.val(max);
            }

            if (val < min)
            {
                e.preventDefault();
                $this.val(min);
            }
        }
});

键入12不会改变任何内容。键入3 - 69将会发挥应有的作用。输入199以上的所有内容(是200也是如此)会将值更改为70 ..

它也不会更改600

以上的值

2 个答案:

答案 0 :(得分:2)

您应该使用下面的代码段中显示的条件。

此外,您正在编写字符串而不是数字。 尝试使用parseInt

将值解析为整数

您的代码应如下所示:

    $("input").change(function(e) {
        var $this = $(this);
        var val = parseInt($this.val());
        var max = parseInt($this.attr("max"));
        var min = parseInt($this.attr("min"));

        if(val < min || val > max){
            e.preventDefault();
            $this.val(max);
        }
    }

});

答案 1 :(得分:0)

发现错误的情况。将if(val > min || val < max)更改为if(val >= min && val <= max)