我有一个包含输入类型的表,例如复选框,文本如下
var inputBoxes = table_check.getElementsByTagName('input'); //modified to get only input tags present within the table
for(var i=0; i<5; i++) {
Nos1=parseInt(inputBoxes[i+1].value);item_row_no=1;
if(inputBoxes[i].value){alert('No Input Box');} //fails at this if clause
else{Nos2=0;}
如果表格中存在少于5个输入类型,则应该发出警报。
例外结果: No Input Box
来自提醒
实际结果: <nothing thrown>
如果输入类型小于5;
如果表格中只有5种输入类型,上面的脚本工作正常。
答案 0 :(得分:1)
你的问题不明确。如果您只想根据输入类型的数量添加条件,您可以使用下面给出的相似内容。
var inputBoxes = table_check.getElementsByTagName('input'); //modified to get only input tags present within the table
if(inputBoxes.length<5){
alert('No Input Box');
}
答案 1 :(得分:1)
您应该使用i<inputBoxes.length
作为条件。
for(var i=0; i<inputBoxes.length; i++) {
Nos1=parseInt(inputBoxes[i+1].value);
item_row_no=1;
if(inputBoxes[i].value){
alert('No Input Box');
} else {
Nos2=0;
}
}
如果出于某种原因你想要保持i<5
条件,你需要检查数组元素的存在而不是.value
,你应该在控制台上遇到错误,因为你的if如何设置。使用以下内容:
if(!inputBoxes[i]){
console.log("Input Box "+ i +" Does Not Exist");
} else {
Nos2=0;
}
答案 2 :(得分:1)
inputBoxes
是一个HTMLCollection。
将其变成array
,如此:
var inputBoxes = document.getElementsByTagName('input');
inputBoxes = Array.prototype.slice.call(inputBoxes);
然后你可以检查inputBox是否定义为
if(inputBoxes[i] == undefined){
alert('No Input Box');
}