根据字符串检查一系列复选框

时间:2011-09-01 00:54:29

标签: javascript

我的复选框组几乎等于100,所有复选框都名称为checkbox1 ... checkbox1oo。我以位格式从数据库中获取字符串。现在我需要根据字符串的每个位置使用for循环检查复选框。

举个例子。字符串是10010.这意味着我必须选择复选框1st和4th。怎么可能。

for (i=1;i<=5;i++)
{
check every position of sting==1
than document.formname.checkbox[i]==checked.
}

我希望做那样的事情。

2 个答案:

答案 0 :(得分:1)

for( var i = 0, l = string.length ; i < l ; i++ ) {
    if( string.charAt(i) === "1" ) {
        document.forms[formname]['checkbox' + i].checked = true;
    }
}

其中string是数据库中的字符串,formname是您正在操作的表单的ID

答案 1 :(得分:0)

获取所有标签,循环,获取复选框,构建字符串。

var elements = document.getElementsByTagName('input');
var str = "010101";
for(var i = 0; i< elements.length; i++) {
    if (elements[i].type == "checkbox") {
        var index = +(elements[i].name.match(/\d+/g)[0]); // get index

        elements[i].checked = !!(+str.charAt(index -1));
    }
}

http://jsfiddle.net/UMuxP/

!!(+str.charAt(index -1))

可能很容易:

str.charAt(index -1) === "1"