2013-07-16 2 views
3

Здесь http://jsfiddle.net/SW5NH/5/ Я создал некоторую автоматически сгенерированную таблицу (DOM + JavaScript).Как сравнить 2 checkbox'es значения

Я хочу сравнить, имеет ли значение Input1 [z] флажка флажка (true/false) значение [z] Input2. Если они не равны, значение [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

Ваше сравнительный правильно, но вы должны использовать «изменений» EventListener как этот

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

Проверьте это JSFiddle и поделиться своим предложением.

использовать также === вместо ==

+0

+1 для '===' не '==' – BenLanc

+0

Благодарим за отзыв. Также кажется, что он работает на Chrome, а не в IE. – Skaidrius

+0

@ user2587277 У вас есть 'console.log' в вашем' js'. Если удалите его. IE не разрешает 'console.log'. – Praveen

0

Спасибо всем.

Мой стол работает сейчас, и он уже качается :) Он все еще продолжается, но ждут только косметические поправки.

Настоящий JSFidle http://jsfiddle.net/5tcPz/1 Мы можем использовать его, если вы сочтете это полезным.

Моя ошибка была - document.createTextNode элемент не может иметь идентификатор, поэтому значение значения элемента [z] равно null.

я решил его таким образом:

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

UPDATE. http://jsfiddle.net/5dmrW готовый стол !!! Это был мой первый проект JavaScript после CodeAcademy и много JS онлайн-уроков :) Это очень просто, но я горжусь этим. С уважением

Смежные вопросы