2013-07-16 76 views
3

這裏http://jsfiddle.net/SW5NH/5/我創建了一些自動生成的表格(DOM + JavaScript)。如何比較2複選框的值

我想比較複選框的Input1 [z]值(true/false)是否等於Input2的[z]值。 如果它們不等於值[z]應該改變。

以幾種方式嘗試(下表是一些測試結果),但無法實現它。 我將不勝感激的任何幫助/意見。

function valCheck() { 
    for (var y2 = 0; y2 < empl.length; y2++) { 
     var Id1 = 'Option1'+y2+''; 
     var Id2 = 'Option2'+y2; 
     var input1 = document.getElementById(Id1).checked; 
     var input2 = document.getElementById(Id2).checked; 
     var value = 'Value'+y2+''; 
     var valEntry = document.getElementById(value); 
     var debt = (input1==input2) ? 'no debt' : 'debt'; 
     document.getElementById('tabinfo').innerHTML = Id1+input1+ ' ' +Id2+input2+ ' ' +(input1&&input2)+value+valEntry+ ' ' + debt; 
     document.getElementById(value).createTextNode(debt); 
     } 
    } 

不工作

UPDATE:解決。解決方案在我上一篇文章。

+1

它看起來像你只在窗口第一次加載時執行'valCheck'。每次檢查時都不應該檢查它嗎? – DevlshOne

回答

1

在這裏,你需要什麼,DEMO HERE

function checkValue() { 
     var a = document.getElementById('a'); 
     var b = document.getElementById('b'); 
     if (a.checked != b.checked) { 
      document.getElementById('lab').innerHTML="Not equal"; 
     } 

     else 
      document.getElementById('lab').innerHTML = "equal"; 
    } 
+0

謝謝@Mota Chuha – Skaidrius

+0

標記爲答案,如果它可以幫助你。 – Sudarshan

3

你comparsion是正確的,但你應該使用「變化」事件監聽這樣

document.addEventListener('change', valCheck, false); 

檢查這個JSFiddle和分享您的建議。

還可以使用===代替==

+0

+1 ==''不== == – BenLanc

+0

謝謝你的提示。此外,它似乎,它在Chrome上,而不是在IE中。 – Skaidrius

+0

@ user2587277你的'js'中是否有'console.log'。如果這樣刪除它。 IE不允許'console.log'。 – Praveen

0

謝謝大家。

我的桌子現在工作,它已經岩石已經:)它仍在進行中,但只有等待美容修改。

這裏是實際的JSFidle http://jsfiddle.net/5tcPz/1 如果您覺得它有用,歡迎使用它。

我的錯誤是 - document.createTextNode元素不能有ID,所以Element值[z]的值爲null。

我解決它以這樣一種方式:

var fifthCell = document.createElement('DIV'); 
    fifthCell.id = "Value" + y + ''; 
    fifthCellText = document.createTextNode('no debt'); 
    fifthCell.appendChild(fifthCellText); 

更新。 http://jsfiddle.net/5dmrW完成表!這是我codeacademy和許多JS在線教程後的第一個JavaScript項目:)這是一個非常簡單的,但我爲它感到自豪。問候