日期:2014-05-16 浏览次数:20339 次
在html中使用checkbox如下:
<form name="frm1">
<input type="checkbox" id="mycouse1" name="mycouse[]" value="datastruct">数据结构
<input type="checkbox" id="mycouse2" name="mycouse[]" value="c++">C++
<input type="checkbox" id="mycouse3" name="mycouse[]" value="c#">C#
<input type="checkbox" id="mycouse4" name="mycouse[]" value="php">PHP
</form>
注意checkbox名中的“[]”字符,因为是把checkbox作为数组,在php中才能用foreach方法取得选中的值。
但在js中document.frm1.mycouse[].length方法却不能用。只有类似于document.frm1.mycouse.length才可以,这样php就只能取选中的最后一个 mycouse 值了,不能取得所有的选中的 mycouse 值。
解决办法:document.frm1["mycouse[]"].length。把整个form看作一个数组,checkbox[] 作为其中一个元素就可以了。
checkbox_mycouse = document.frm1["mycouse[]"];
for(var i=0; i<=checkbox_mycouse.length-1; i++)
{
if(checkbox_mycouse[i].checked)
count++;
}
alert('有' + count + '选项被选中。');
其实,如果 name="mycouse[]" 为 name="mycouse",则很简单:
for(var i=0; i<=document.frm1.mycouse.length-1; i++)
{
if(document.frm1.mycouse[i].checked)
count++;
}
作者:张庆(网眼) ,微博:http://t.qq.com/zhangking
来自“网眼视界”:http://blog.why100000.com
“十万个为什么”电脑学习网:http://www.why100000.com
2012-8-22