使用[]帮助JavaScript阅读复选框

时间:2011-01-17 15:05:45

标签: php javascript

我已经编写/修改了一个脚本来计算复选框已选中它工作正常但我知道需要复选框名称来读取我的PHP脚本的r1 []现在它不起作用请帮助使用java脚本...

这项工作

<input name='r1' type='checkbox' value='' onClick='return GetSelectedItem2()' />

这不起作用

<input name='r1[]' type='checkbox' value='' onClick='return GetSelectedItem2()' />

JAVASCRIPT

function GetSelectedItem2() {
    chosen = ""
    numCheck = 0
    len = document.f1.r1.length

    for (i = 0; i < len; i++) {


        if (document.f1.r1[i].checked) {
            numCheck++
            if (numCheck == 3) {
                alert("Only pick two date")
                document.f1;
                return false;
            }
        }
    }
}

2 个答案:

答案 0 :(得分:1)

Javascript不会像PHP那样枚举表单元素。它保持原样名称。您必须手动迭代元素,检查名称"r1[]"

// pseudo code
for (var e in document.f1.elements) {   // might need for each etc.
     if (e.name == "r1[]") {
         if (e.checked) {
             numCheck++;

数组语法访问不起作用,因为所有元素都具有相同的名称。我甚至不确定所有Javascript实现是否都可以通过这种方式访问​​它们(无论如何都可能在内部存储为dict)。

答案 1 :(得分:0)

的javascript:

function anyCheck(f){
var t=0;
var c=f['r1[]'];
for(var i=0;i<c.length;i++){
c[i].checked?t++:null;
}

if(t == 3) {
alert('You selected ' + t + ' boxes.');
document.playlist; return false;
}


}

复选框

<input type="checkbox" name="r1[]" onclick="return anyCheck(this.form)">