在我的aspx页面中,我有一个复选框列表..它有一个表中的绑定值.. 我需要验证复选框列表..我尝试了以下脚本
var checkBoxCount = 0;
var elements = document.getElementById('<%=ChkBoxList.ClientID%>');
for(i=0; i<elements.length;i++)
{
if(elements[i].checked)
checkBoxCount++;
}
if (checkBoxCount == 0)
{
alert("Please choose atleast one");
return false;
}
但我无法获得所需的输出,它需要选中复选框列表中的所有值。我需要的是至少只有一个项目必须从复选框列表中选择..使用javascript
提前致谢...
答案 0 :(得分:1)
function readListControl()
{
var tableBody = document.getElementById('CheckBoxList1').childNodes[0];
for (var i=0;i<tableBody.childNodes.length; i++)
{
var currentTd = tableBody.childNodes[i].childNodes[0];
var listControl = currentTd.childNodes[0];
if ( listControl.checked == true )
alert('#' + i + ': is checked');
}
}
答案 1 :(得分:0)
document.getElementById
返回一个元素,而不是数组。
这样做的一种方法是获取容器并迭代输入,如下所示:
var container = document.getElementById('<%=ChkBoxList.ClientID%>').parentNode;
var inputs = container.getElementsByTagName('input');
for (var i=0; i<inputs.length; i++) {
if (typeof inputs[i] = "checkbox") {
// statements
}
}
您可能还希望使用更多条件语句限定输入。这只是为您提供了广泛的笔触。
答案 2 :(得分:0)
您必须向我们展示您生成的HTML。
但是,这是一个有效的例子:
<html>
<body><form name="myform" method="POST" action="" onsubmit="return validate();">
<input type="checkbox" name="mybox" value="1" /> 1
<input type="checkbox" name="mybox" value="2" /> 2
<input type="checkbox" name="mybox" value="3" /> 3
<input type="checkbox" name="mybox" value="4" /> 4
<input type="checkbox" name="mybox" value="5" /> 5
<input type="submit" value="Submit Form" />
</form>
<script type = "text/javascript">
function validate() {
var checkBoxCount = 0;
for (var i = 0; i< 5; i++) {
if(document.myform["mybox"][i].checked){
checkBoxCount ++;
}
}
if (checkBoxCount == 0) {
alert ("Tick a box!");
return false;
}
return true;
}
</script>
</body>
</html>
答案 3 :(得分:0)
var k = 0; var ControlRef = document.getElementById('ChkBoxList'); var CheckBoxListArray = ControlRef.getElementsByTagName('input'); for(var i = 0; i