2013-10-24 5 views
1

У меня есть код, который может показывать div каждый раз, когда я нажимаю переключатель, и он работает нормально. Проблема в том, что я хочу, чтобы все радиокнопки были проверены, а затем отобразится div.Javascript show div, когда все переключатели отмечены

Вот мой код для кнопки 1 радио

function showstuff(nxt){ 
    document.getElementById(nxtb).style.display="block"; 
} 

<input id="ny" name="ny" type="radio" onClick="document.getElementById('ny').checked = 
true; showstuff('nxt');" /> 

<div id="nxtb">Next</div> 

Заранее спасибо

+0

Если вы имеете в виду, вы хотели бы ВСЕ радиокнопки t o выберите для отображения div и у вас есть несколько переключателей. Вместо этого вы можете использовать флажки. Если вы все еще имеете в виду, что у вас есть отдельные параметры переключателя - используйте класс вместо ID. Дайте мне знать, что вы имеете в виду, и я могу помочь. – tree

+0

Спасибо за ответ, все радиокнопки, потому что на моей форме будет 3 вопроса, у каждого вопроса есть 3 переключателя, каждый вопрос должен быть проверен, чтобы отобразился символ hide, который является кнопкой. извините, я больше не объяснял. – tmv1845331

ответ

0

Вот решение без назойливой JavaScript (то есть onclick атрибуты):

/* 
* Convert to array so we can use `forEach()` and `every()` 
*/ 
function toArray(any) { 
    return Array.prototype.slice.call(any); 
} 

var observed = toArray(document.querySelectorAll('[data-observe]')); 
var listened = []; 
var result = document.querySelector('#result'); 

/* 
* Gather all elements we want to listen for change: 
* observed elements and their siblings with the same name 
*/ 
observed.forEach(function (target) { 
    var siblings = toArray(document.querySelectorAll('[name=' + target.name +']')); 
    listened = listened.concat(siblings); 
}); 

listened.forEach(function (radio) { 
    radio.addEventListener('change', function() { 
     var checked = observed.every(function (item) { 
      return item.checked; 
     }); 

     checked ? 
      result.removeAttribute('hidden') : 
      result.setAttribute('hidden', 'true'); 
    }); 
}); 

Demo: http://jsfiddle.net/sZHAA/1/

+0

спасибо большое! оно работает – tmv1845331

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