我有这个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);
}
}
});
键入1
或2
不会改变任何内容。键入3
- 69
将会发挥应有的作用。输入199
以上的所有内容(是200
也是如此)会将值更改为70
..
它也不会更改600
答案 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)