我试图从输入框中收集一定数量,然后勾选一定数量的数据框。
这是我到目前为止所做的并且它不起作用: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\'));
答案 0 :(得分:2)
getElementsByName返回一个数组,你的函数需要一个元素,你需要像这样访问第一个元素:
checkAmount(document.getElementsByName(\'ammount\')[0]);
将for循环中的ting.value更改为boxes.length:
function checkAmount(ting) {
var boxes = document.getElementsByTagName("input");
for (var i = 0; i < boxes.length; i++) {
boxes[i].checked = (boxes[i].name == "vote[]") ;
}
}
答案 1 :(得分:0)
尝试使用
checked=checked
而不是
checked=true
答案 2 :(得分:0)
试试这个:
boxes.item(i).checked = checked
抱歉不确定如何将javascript插入帖子
答案 3 :(得分:0)
从您的陈述“从输入框中收集金额”我认为您希望ting是一个输入到文本框中的数字,因此您正在调用一个函数,该函数需要一个值应该解析为数组的数字表单元素对象?
var m = document.getElementsByName("amount");
m将是一个阵列!
换句话说,如果你确定在调用checkAmount时传递了一个数字,它可能会更好:
checkAmount(documents.forms[0].amount.value)
或:
checkAmount(documents.getElementsByName("amount")[0].value)
如果您发布实际的HTML和实际的JavaScript代码,那将会有很大帮助。
答案 4 :(得分:0)
您发布的代码存在一些问题,如之前的答案和回复所示。尝试这样的事情:
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的调用都有效,您都可以安全地避免数组越界错误。