2011-09-01 65 views
0

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

只是举个例子。字符串是10010.这意味着我必须选择第一个和第四个复选框。如此看来,这将是可能的。

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

我希望这样做。

回答

0

获取所有的标签,通过循环,得到复选框,打造字符串的ID。

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" 
+0

@AbstractDownnvote :Chk这一个http://jsfiddle.net/UMuxP/2/ –

+0

@user,http://jsfiddle.net/UMuxP/5/你想让我解决它我猜? – Joe

+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的形式为你操纵

+0

也许需要处理的情况下继续前进的复选框集合取消可能已经检查了所有剩余的复选框的全长以前的字符串。 – RobG

+0

@Flambino:http://jsfiddle.net/UMuxP/2/不在这工作。 –

+0

@ user921300:您没有引用表单的名称和其他一些内容。在这里看到更正:http://jsfiddle.net/UMuxP/7/ – Flambino