2012-05-15 97 views
0

我有一個表格,其中有n個行,並帶有複選框,我想要做的是如果我選中複選框,該值應該轉到文本區域,所以我將所有元素存儲在一個數組,但它沒有發生,因爲你可以看到我添加警報以及檢查出來。請幫忙。將無限數量的複選框值發送到文本

window.onload = function() { 
    var oRows = document.getElementById('rnatable').getElementsByTagName('tr'); 
    var iRowCount = oRows.length; 
    alert('Your table has ' + iRowCount + ' rows.'); 

    var i = 0; 
    cb = new Array(iRowCount); 
    while (i <= iRowCount) { 
     var id = 'check'+ i; 
     cb[i] = document.getElementById(id); 
     i++; 
    } 
    //alert('Your table has ' + cb[i].value + ' rows.'); 
    for(var a=0; a < iRowCount; a++) { 
     var fasta = document.getElementById('fasta'); 
     if(cb[a].checked) { 
      fasta.value = cb.value + ","; 
     }; 
    }; 
} 
+0

你的代碼在'onload'處理程序中,但是你是否說你想讓這些值轉到textarea以響應用戶單擊複選框? – nnnnnn

回答

1

您是否在控制檯中看到錯誤?我懷疑當while (i <= iRowCount)運行時i === iRowCountdocument.getElementById(id)沒有產生結果,那麼當你使用那個值的時候,會發生壞事。

此外,每圈通過fasta循環覆蓋以前的值。您可能需要類似fasta.value += cb.value + ",";的東西。

+0

'<= iRowCount'意味着ID從1開始編號,而'i = 0'初始化意味着ID從0開始編號;毫無疑問,這種混亂是問題的一部分。確實是 –

+0

。然而'i = 0'是初始化。 – robrich

+0

謝謝大家的意見,另一位用戶misapink幫我解答了一下http://jsfiddle.net/ZfmNw/1/ – FoldedChromatin

相關問題