function ValueLimit(min, max, mode){
var v;
if(mode === "h"){
v = document.getElementById("weight_imp").value;
if(v < min){document.getElementById("weight_imp").value = min;}
if(v > max){document.getElementById("weight_imp").value = max;}
}
if(mode === "w"){
v = document.getElementById("weight_imp").value;
if(v < min){document.getElementById("weight_imp").value = min;}
if(v > max){document.getElementById("weight_imp").value = max;}
}
}
我需要用输入元素的ID替换mode 这反过来会使代码显着缩小 我似乎找不到通过它的方法 它应该能够定位页面上的任何元素
答案 0 :(得分:2)
我建议你将函数传递给一个实际的元素而不是一个选择器(它的附加好处是不要求每个input
都有一个id
)。您还可以使用Math.min
和Math.max
来缩短实施时间。
function clampValue (e, min, max){
e.value = Math.min(max, Math.max(min, +e.value))
}
var input = document.getElementById('weight_imp')
function exampleUsage () {
clampValue(input, 0, 100)
}
<input type="number" id="weight_imp">
<button onclick="exampleUsage()">Clamp [0, 100]</button>