0

如何在不限制输入值的情况下限制输出值,例如从 5 到 195?

<!DOCTYPE html>
<html>
<body>

<form oninput="x.value=parseInt(a.value)+parseInt(b.value)">0
<input type="range" id="a" value="50">100 +
<input type="number" id="b" value="50">=
<output name="x" for="a b"></output>
</form>

</body>
</html>
4

1 回答 1

1
<!DOCTYPE html>
<html>
<body>

<form oninput="var n = parseInt(a.value)+parseInt(b.value); x.value =  n < 5 ? 5 : ( n > 195 ? 195 : n);">0
<input type="range" id="a" value="50">100 +
<input type="number" id="b" value="50">=
<output name="x" for="a b"></output>
</form>

</body>
</html>

这使用了一个嵌套的三元运算符a ? b : c,它本质上是a if b else c. 当它被嵌套时,你可以这样想:a ? b : (c ? d : e)结果a if b ELSE (c if d else e)(c ? d : e)相当于cin a ? b : c

在这里试试

Alternativley,你可以做

<form oninput="x.value = Math.min(Math.max(5,parseInt(a.value)+parseInt(b.value)),195);"/>

达到相同的结果,只是以不同的方式,你可以在这里玩

在这里尝试一下: JSfiddle

于 2013-05-02T08:00:04.757 回答