2011-09-01 39 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

相關問題