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)as a if b ELSE (c if d else e)the resultはin(c ? d : e)と同等です。ca ? b : c

ここで試してみてください

代わりに、あなたはできる

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

同じ結果が得られますが、異なる方法で、ここで試すことができます

ここで試してみてください: JSfiddle

于 2013-05-02T08:00:04.757 に答える