<!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
in a ? b : c
。
在这里试试
Alternativley,你可以做
<form oninput="x.value = Math.min(Math.max(5,parseInt(a.value)+parseInt(b.value)),195);"/>
达到相同的结果,只是以不同的方式,你可以在这里玩
在这里尝试一下:
JSfiddle