[英]Javascript function not getting a value from an input box and loop through an array
我试图从输入框中收集一定数量,然后勾选一定数量的盒子,这是一个数组。
这是我到目前为止所做的,它不起作用:S
function checkAmount(ting) {
var boxes = document.getElementsByTagName("input");
for (var i = 0; i < ting.value; i++) {
if (boxes[i].name == "vote[]") {
boxes[i].checked = true;
}
}
}
我用它调用它:
uncheckAll();
checkAmount(document.getElementsByName(\'ammount\'));
getElementsByName返回一个数组,你的函数需要一个元素,你需要访问第一个元素,如下所示:
checkAmount(document.getElementsByName(\'ammount\')[0]);
在for循环中将ting.value更改为box.length:
function checkAmount(ting) {
var boxes = document.getElementsByTagName("input");
for (var i = 0; i < boxes.length; i++) {
boxes[i].checked = (boxes[i].name == "vote[]") ;
}
}
尝试使用
checked=checked
代替
checked=true
尝试这个:
boxes.item(i).checked = checked
抱歉不确定如何在帖子中插入javascript
你发布真实的代码吗? 如果是这样,你会发现你在函数调用中拼错了'数量'错误了吗?
从你的语句“从输入框中收集一个数量”我认为你期望ting是一个输入到文本框中的数字,所以你正在调用一个函数,该函数需要一个值应该解析为表单元素对象数组的数字?
var m = document.getElementsByName("amount");
我将是一个阵列!
换句话说,如果您在调用checkAmount时确保传递数字,则可能会更好:
checkAmount(documents.forms[0].amount.value)
要么:
checkAmount(documents.getElementsByName("amount")[0].value)
如果您发布实际的HTML和实际的JavaScript代码,它会有很大帮助。
如先前的答案和答复所示,您发布的代码存在多个问题。 尝试这样的事情:
function checkAmount(ting) {
var boxes = document.getElementsByTagName("input");
for (var i = 0; i < ting.value && i < boxes.length; i++) {
if (boxes[i].name == "vote[]") {
boxes[i].checked = true;
}
}
}
这样称呼:
uncheckAll();
checkAmount(document.getElementsByName(\'ammount\')[0]);
现在,无论输入字段中键入的值如何,都可以避免出现数组超出范围的错误,并且对checkAmount的调用应该可以工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.