0

我使用了以下代码:

<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是使用的复选框数!

用例:我要从数据库中检索行,在这种情况下,我需要检查选中的复选框数量以执行删除操作!请给你宝贵的意见来解决这个问题

4

3 回答 3

0

您正在尝试访问该复选框#entry。像这样添加属性name="entry"

<input type="checkbox" id="entry" name="entry" value="1" />

表单对象由它们的name属性访问。

至于 Javascript,你想要value,而不是length.

document.write(entry.value);

length表示给定字符串的字符长度。

于 2012-09-27T06:33:39.040 回答
0

entry如果id你想以这种方式引用它,input 它应该是你的。name

<input type="checkbox" name="entry" id="entry" value="1"/>

要通过 id 访问它的表单元素,您必须使用

document.getElementById('idOfElement')

我也没有找到你使用长度的目标。你可以得到sizeinput不是length

如果您想查找选中的复选框数量,那么可能在 javascript 中您可以通过编写如下脚本进行检查

var inputElems = document.getElementsByTagName("input"),
    count = 0;
for (var i=0; i<inputElems.length; i++) {
    if (inputElems[i].type === "checkbox" && inputElems[i].checked === true) {
        count++;
    }
}
于 2012-09-27T06:33:40.753 回答
0

为什么 entry.length 的值未定义?

因为form.entry引用元素,并且元素没有长度属性。你要:

entry.value.length;

同时,当我尝试使用多个复选框时,entry.length 的值是使用的复选框数!

因为如果多个表单控件具有相同的名称,则form.controlName引用所有具有相同名称的控件的集合。HTML 集合有一个长度属性,它是集合中元素的数量。

此外,该行:

>       document.write(entry.length);

将清除整个文档,您可能想要:

 alert(entry.value.length);

 // or

 console.log(entry.value.length);

您可能会发现阅读HTML 5 规范中有关表单的整个部分以及HTML 4.01 标准的相关部分很有用。

于 2012-09-27T06:53:06.913 回答