Javascript取消选中所有复选框

时间:2012-05-05 22:57:07

标签: javascript

<label class="checkbox inline">
<input type="checkbox" name="Services[]" value="service1"> Service 1
</label>
<label class="checkbox inline">
<input type="checkbox" name="Services[]" value="service2"> Service 2
</label>

我正在使用Services [],以便$ _POST ['Services']映射到PHP中的数组,包含所需的值。

但是,在客户端,我还需要在提交表单(到PHP)后取消选中所有这些复选框。非常简单的Javascript :(实际的复选框组是8长)。

for (j=0; j<8; j++){
fields[6][j].checked=false;
}

其中:

fields[6] = formob.Services[];
formob=document.forms["FooterQuote"];

问题是我无法将Services []放入Javascript数组中。我尝试使用以下方法:(伪代码,这里只有语法问题)

var fields=[formob.text1, formob.text2, formob.text3, formob.Services[]];
//Syntax error at Services[]

var fields=new Array(formob.text1, formob.text2, formob.text3, formob.Services[]);
//Syntax error at Services[]

var fields=new Array(formob.text1, formob.text2, formob.text3);
fields.push(formob.Services[]);
//Syntax error at Services[]

所以,遗憾的是,就我所知,我无法将Services []推送到Javascript数组中。

我也尝试过使用formob.Services,但这也不起作用。

有没有人有任何想法我怎么能使名称=“服务[]”语法的复选框在Javascript数组中工作,所以我可以循环并取消选中它们全部? :)

2 个答案:

答案 0 :(得分:2)

你必须解决这样的复选框:

var services = ​document.forms['FooterQuote']['Services​[]']​;

有关详细信息,请查看此文章:Dot and Square Bracket Notations

所以要取消选中它:

for (var i = 0; i < services.length; i++) {
    services[i].checked = false;
}

答案 1 :(得分:1)

这时你应该使用square bracket notation

你可以做到

formob["Services[]"]

formob.elements["Services[]"]