我有点问题。我想我犯了一个大的菜鸟错误,但我找不到它。在下面的代码中,我尝试获取我的表单的输入,但它也在表单之外输入。那是为什么?
这是我的JS代码:
function selectAll(bool){
var form = document.forms['selectMailing'];
for(var i=1; i<=form.length; i++) {
form.elements['select'+i].checked = bool;
}
}
和HTML:
<input type=button value="Select All" onclick="selectAll(true)"/>
<form method=post action="" id="selectMailing" onsubmit="return checkSelect()">
<input type=checkbox name="select1" value="1" />
<input type=checkbox name="select2" value="1" />
<input type=submit value="Spammer" />
</form>
因此,当我尝试这个时,JS返回错误'无法设置属性'已检查'未定义'在线,其中有我的输入按钮。为什么会这样呢?我选择表单,只有他的元素和输入按钮没有名称可以与名称形式混淆。
感谢您的帮助!
我知道jquery但我之前想学习JavaScript,所以如果你唯一的用户是'使用jQuery',请去帮助别人:)
答案 0 :(得分:2)
在“selectMailing”表单中有3个输入。您可以通过在代码中提供“form.length”警报来验证它。前两个输入是复选框类型,第三个输入是提交类型。
修改这样的javascript以访问复选框类型输入项(使用类型检查)
function selectAll(bool){
var form = document.forms['selectMailing'];
//alert(form.length);
for(var i=0; i<form.length; i++){
if(form.elements[i].type == "checkbox")
{
form.elements[i].checked = bool;
}
}
}