【发布时间】:2015-01-15 03:20:37
【问题描述】:
我有一个表单,用户可以使用它输入 5 个数字。我给所有五个输入框都赋予了相同的 id 和不同的名称。我想对每个输入框进行验证。我希望能够根据输入的数字更改输入框的背景颜色。例如,数字在 0-5 范围内的每个输入框都应将其背景颜色更改为红色,而在 6-10 之间的输入框应更改为绿色。
我已经能够编写一个代码来改变一个输入框的颜色,但是我想不出一种方法来优化我的代码并避免编写五次相同的代码。这是我到目前为止所得到的:
表格:
<form id="numbers">
Number1: <input id ="color" name="num1" type="number" onchange="check();">
<br><br>
Number2: <input id ="color" name="num2" type="number" onchange="check();">
<br><br>
Number3: <input id ="color" name="num3" type="number" onchange="check();">
<br><br>
</form>
功能:
function check() {
var inputVal = document.getElementById("color").value;
if (inputVal=="" || inputVal ==null) {
document.getElementById("color").style.backgroundColor = "white";
}
else if (inputVal >= 0 && inputVal <= 5) {
document.getElementById("color").style.backgroundColor = "red";
}
else if (inputVal >= 6 && inputVal <= 10) {
document.getElementById("color").style.backgroundColor = "green";
}
}
如果我将 inputVal 更改为数组并使用 for 循环来保存 document.getElementById("color").value 的值,它将保存用户输入的第一个数字五次,并且只会更新第一个盒子。
这是我尝试过的:
var inputVal = new Array();
for(var i=0; i<5; i++) {
inputVal[i]= document.getElementById("color").value;
}
【问题讨论】:
-
ids 在文档中必须是唯一的。 -
首先,HTML 元素的 ID 必须是唯一的。
-
^ 是的,请改用
classes。 “对 HTML 元素进行分类,可以为元素类定义 CSS 样式。”在这种情况下对它们进行全部测试 -
每次都找第一个ID。正如其他人所提到的,您的 ID 必须是唯一的。
标签: javascript html