我有下面的HTML,它已经在smarty模板语言中循环:

<td><input type="checkbox" name="confirmRelated[{$relatedIP.ipInt}_{$relatedIP.patternID}][confirm]" /></td>
<td><input type="hidden" name="confirmRelated[{$relatedIP.ipInt}_{$relatedIP.patternID}][ipInt]" value="{$relatedIP.ipInt}">{$relatedIP.robotIP}</td>
<td><input type="hidden" name="confirmRelated[{$relatedIP.ipInt}_{$relatedIP.patternID}][patternID]" value="{$relatedIP.patternID}">{$relatedIP.pattern}</td>

我试图用javascript访问这些字段,但到目前为止,即使是最基本的字段也有问题。有人能帮忙吗?
var boxes = document.getElementsByName('confirmRelated');
alert(boxes.length);

此时返回0,这显然是错误的。我正在尝试循环查看所有这些文件,并选中“确认”复选框。
感谢任何帮助。

最佳答案

您不能通过document.getElementByName()访问它们。以下方法应该有效:

var boxes = document.getElementsByTagName('input');
for(i = 0; i < boxes.length; i++){
    if(boxes[i].name == 'confirmRelated' && boxes[i].type == 'checkbox'){
        boxes[i].checked = 'checked';
    }
}

这将使用类型复选框检查所有输入。
编辑:使用一个类似于prototype的框架,您可以使它更容易:
$$('input[name=^"confirmRelated"]').each(function(elm){
    if(elm.type == 'checkbox') elm.checked = 'checked';
});

09-25 20:26