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