我使用了以下代码:
<html>
<head>
<script type="text/javascript" language="javascript">
function doit(page) {
var entry = page.entry;
var flag = false;
document.write(entry.length);
}
</script>
</head>
<body>
<span id="error_checkbox" style="color: blue;"> </span>
<form name="subscribeTablePage">
<input type="checkbox" id="entry" value="1"/> <label>1</label><br/>
<input type="button" value="Submit" onclick="doit(document.subscribeTablePage)"/>
</form>
</body>
</html>
为什么entry.length
的值未定义?在我尝试使用多个复选框的同时,entry.length
的值是使用的复选框数量!
用例: 我将从数据库中检索行,在这种情况下,我需要检查检查的复选框的数量,以执行删除操作!请给出有价值的评论来排序这个问题
答案 0 :(得分:0)
您正在尝试访问复选框#entry
。像这样添加属性name="entry"
。
<input type="checkbox" id="entry" name="entry" value="1" />
表单对象由name
属性访问。
对于Javascript,您需要value
,而不是length
。
document.write(entry.value);
length
表示给定字符串的字符长度。
答案 1 :(得分:0)
entry
是您id
的{{1}}
如果你想以这种方式引用它,它应该是input
。
name
要按ID显示元素,必须使用
<input type="checkbox" name="entry" id="entry" value="1"/>
另外,我没有找到使用长度的目标。您可以获得document.getElementById('idOfElement')
而不是size
的{{1}}。
如果您想查找已选中的复选框的数量,那么可能在javascript中您可以通过编写如下脚本来检查
input
答案 2 :(得分:0)
为什么entry.length的值未定义?
因为form.entry
引用了该元素,并且该元素没有length属性。你想要:
entry.value.length;
在我尝试使用多个复选框的同时,entry.length的值是使用的复选框的数量!
因为如果多个表单控件具有相同的名称,form.controlName
引用具有相同名称的所有控件的集合。 HTML Collections有一个length属性,它是集合中元素的数量。
另外,该行:
> document.write(entry.length);
将清除整个文档,可能是您想要的:
alert(entry.value.length);
// or
console.log(entry.value.length);
您可能会发现阅读HTML 5 specification中有关表单的整个部分以及HTML 4.01 standard的相关部分非常有用。