如何在不限制输入值的情况下限制输入计算的值?

时间:2013-05-02 07:53:47

标签: html5 forms

如何限制输出值,例如,从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>

1 个答案:

答案 0 :(得分: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)的结果相当于c中的a ? b : c

尝试here

Alternativley,你可以做到

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

实现相同的结果,只是以不同的方式,你可以玩它here

在这里试试: JSfiddle