通过var aa = document.getElementsByName("name")获得的对象是NodeList,不能直接调用aa.value或者aa.checked等其他checkbox的属性,这样会出现undefined的错误。因为每个checkbox的name属性是相同的,所以得到的是一组checkbox标签对象。正确方法是使用for循环遍历每一个标签。
代码举例(功能是取消每个checkbox的选中状态,并将其后面的文本框内容清空):
var use=document.getElementsByName("use");
var checkbox=document.getElementsByName("checkbox");
for (var i=0;i<use.length;i++)
{
use[i].readonly=true;
use[i].disabled=true;
use[i].value="";//将文本框内容清空~~~
checkbox[i].checked=0;//取消选中状态
}
下面是HTML代码(使用ractive.js库):
<script id="GroupsTemplate">
<label class="uk-form-label">Groups:</label><br>
{{#each groups}}
<input type="checkbox" class="" name="checkbox" value="{{group_id}}" οnchange="dis(this.name)"/>{{group_id}}
<input type="text" name="use" placeholder="content" class="uk-form-danger" disabled="true"/><br>
{{/each}}
</script>