Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript函数未从输入框中获取值并通过数组循环_Javascript_Loops_Input_Checkbox - Fatal编程技术网

Javascript函数未从输入框中获取值并通过数组循环

Javascript函数未从输入框中获取值并通过数组循环,javascript,loops,input,checkbox,Javascript,Loops,Input,Checkbox,我试图从一个输入框中收集一个数量,然后勾选某个数量的框,这是一个数组 到目前为止,这是我得到的,但它不起作用:S function checkAmount(ting) { var boxes = document.getElementsByTagName("input"); for (var i = 0; i < ting.value; i++) { if (boxes[i].name == "vote[]") { boxes[i].che

我试图从一个输入框中收集一个数量,然后勾选某个数量的框,这是一个数组

到目前为止,这是我得到的,但它不起作用: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;  
    }  
}  
}
试用

checked=checked
而不是

checked=true

getElementsByName返回一个数组,并且您的函数需要一个元素,您需要像这样访问第一个元素:

checkAmount(document.getElementsByName(\'ammount\')[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]);
将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[]") ;  
  }  
}
函数校验金额(ting){
变量框=document.getElementsByTagName(“输入”);
对于(var i=0;i
试试这个:

框。项目(i).选中=选中


抱歉,不确定如何将javascript插入帖子中

您发布的是真实代码吗? 如果是这样,您是否意识到在函数调用中拼写“amount”错误

从您的语句“从输入框中收集金额”中,我认为您希望ting是输入到文本框中的数字,因此您调用的函数期望数字的值应解析为表单元素对象数组

var m = document.getElementsByName("amount");
m将是一个数组

换言之,如果您在调用checkAmount时确保传递了一个号码,则效果可能会更好:

checkAmount(documents.forms[0].amount.value)
或:


如果您发布实际的HTML和javascript代码,将会有很大帮助。

正如前面的回答和回复所示,您发布的代码存在一些问题。试着这样做:

checkAmount(document.getElementsByName(\'ammount\')[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的调用是否有效,您都不会出现数组越界错误。

您的所有投票输入是否都命名为“投票[]”?你怎么知道投了什么票?我认为查看jQuery是个好主意。在循环中,它不是
ting.value
而是
ting.length
而且,为什么要使用ting.value而不是box.length?如果ting.value应该小于box.length,您可能需要检查该值,否则将得到一个数组越界错误。虽然该属性可以接受的唯一值是
选中的
,但DOM属性是布尔值,因此接受
。您建议将其设置为变量
checked
,该变量是
未定义的
,因此为假值。净效果是,这将产生与预期完全相反的效果。因为您已经发布了更正。字符串
“checked”
是一个真实值,因此它将转换为
true
。您的建议现在除了降低代码的效率之外没有任何效果。您好,调用现在已解决,因为即使在我向它发出警报时,它也会给我值,但复选框仍未选中