我在html中有复选框,如下所示:
<td><input type="checkbox" name="ChkmemberId" value="D657868" onclick="javascript:saveJobDetails('D657868','1');BindGrid('','Edit');">D657868
<input type="checkbox" name="ChkmemberId" value="M78786" onclick="javascript:saveJobDetails('M78786','1');BindGrid('','Edit');">M78786
<input type="checkbox" name="ChkmemberId" value="D89798" onclick="javascript:saveJobDetails('D89798','1');BindGrid('','Edit');">D89798</td>
我想在javascript中访问这些项目。
我尝试如下:
elm = document.getElementByName("ChkmemberId");
if (elm != null) {
alert('1');
var checkBoxes = elm.getElementsByTagName("input");
var label = elm.getElementsByTagName("label");
alert('2');
for (i = 0; i < checkBoxes.length; i++) {
if (checkBoxes[i].checked == true) {
userID = userID + checkBoxes[i].value + ",";
}
}
}
}
但它不起作用。
请帮助我如何在javascript中访问checkboxlist。
答案 0 :(得分:2)
您正试图从没有任何子元素的元素中获取子元素。
var checkBoxes = elm.getElementsByTagName("input");
您希望获得具有相同名称的所有元素。之后,您想要将它们全部循环并将值放在userId中。
尝试使用此代码:
var checkBoxes = document.getElementsByName('ChkmemberId');
for (var i = 0; i < checkBoxes.length; i++) {
if (checkBoxes[i].checked) {
userID += checkBoxes[i].value;
}
}
答案 1 :(得分:1)
这是怎么回事:
var checks = document.getElementsByName("ChkmemberId"),
check, parts = [],
userID, i;
for (i = 0; i < checks.length; i += 1) {
check = checks[i];
if (check.checked) {
parts.push(check.value);
}
}
userID = parts.join(", ");
工作小提琴: