如何比较2个复选框值

时间:2013-07-16 12:37:31

标签: javascript checkbox

这里http://jsfiddle.net/SW5NH/5/我创建了一些自动生成的表(DOM + JavaScript)。

我想比较复选框的Input1 [z]值(true / false)是否等于Input2' s [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);
        }
    } 

不能工作

更新:已解决。我上一篇文章中的解决方案。

3 个答案:

答案 0 :(得分:3)

您的比较是正确的,但您应该像这样使用'更改'eventListener

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

选中此JSFiddle并分享您的建议。

同时使用===代替==

答案 1 :(得分: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";
    } 

答案 2 :(得分:0)

谢谢大家。

我的桌子现在有效,它已经摇滚了:)它仍在进行中,但是只等待一些化妆品修正。

这是实际的JSFidle http://jsfiddle.net/5tcPz/1 如果您觉得它很有用,欢迎您使用它。

我的错误是 - document.createTextNode元素不能有ID,因此Element value [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项目:)它非常简单,但我为此感到自豪。此致