Добавление класа к <a> когда не выбран input
Как добавить class к <a> в блоке pagination, когда пользователь ничего не выбрал в input в одном из блоков question-1 или 2 или 3 и т.д.?
Имеется следующее <div class='test-data'> <div class='question' data-id='1' id='question-1'> <p class='q'>Вопрос 1</p> <p class='a'><input type='radio' id='answer-1' name='question-1' value='1'> <label for='answer-1'>Ответ 1</label></p> <p class='a'><input type='radio' id='answer-2' name='question-1' value='2'> <label for='answer-2'>Ответ 2</label></p> <p class='a'><input type='radio' id='answer-3' name='question-1' value='3'> <label for='answer-3'>Ответ 3</label></p> </div> <div class='question' data-id='2' id='question-2'> <p class='q'>Вопрос 2</p> <p class='a'><input type='radio' id='answer-4' name='question-2' value='4'> <label for='answer-4'>Ответ 1</label></p> <p class='a'><input type='radio' id='answer-5' name='question-2' value='5'> <label for='answer-5'>Ответ 2</label></p> </div> </div> <div class="pagination"> <a class="nav-active" href="#question-1">1</a> <a href="#question-2">2</a> <a href="#question-5">3</a> </div> <button class='center btn' id='btn'>Результаты</button> |
SLameN,
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> .red{ background-color: Red; } </style> </head> <body> <div class='test-data'> <div class='question' data-id='1' id='question-1'> <p class='q'>Вопрос 1</p> <p class='a'><input type='radio' id='answer-1' name='question-1' value='1'> <label for='answer-1'>Ответ 1</label></p> <p class='a'><input type='radio' id='answer-2' name='question-1' value='2'> <label for='answer-2'>Ответ 2</label></p> <p class='a'><input type='radio' id='answer-3' name='question-1' value='3'> <label for='answer-3'>Ответ 3</label></p> </div> <div class='question' data-id='2' id='question-2'> <p class='q'>Вопрос 2</p> <p class='a'><input type='radio' id='answer-4' name='question-2' value='4'> <label for='answer-4'>Ответ 1</label></p> <p class='a'><input type='radio' id='answer-5' name='question-2' value='5' > <label for='answer-5'>Ответ 2</label></p> </div> </div> <div class="pagination"> <a class="nav-active" href="#question-1">1</a> <a href="#question-2">2</a> <a href="#question-5">3</a> </div> <button class='center btn' id='btn'>Результаты</button> <script> btn.onclick = function() { var a = document.querySelectorAll('.pagination a'); for (var i=0; i<a.length; i++) { var sel = a[i].getAttribute('href') + ' input:checked'; if(document.querySelector(sel)) a[i].classList.remove('red'); else a[i].classList.add('red'); } } </script> </body> </html> |
Цитата:
<!DOCTYPE html> <html> <head> <meta http-equiv='Content-Type' content='text/html; charset=windows-1251' /> <script src='http://code.jquery.com/jquery-latest.js'></script> <!-- <script src="https://code.angularjs.org/1.3.9/angular.min.js"></script> <script src="https://code.angularjs.org/1.3.9/angular-route.js"></script> <link rel='stylesheet type=text/css href=tmp.css' /> <link rel="stylesheet/less" type="text/css" href="style.less"> <script src="http://cdnjs.cloudflare.com/ajax/libs/less.js/2.5.0/less.min.js"></script> --> <style type='text/css'> .no { color: red; } </style> <script type='text/javascript'> $(function(){ $('button').click(function(){ $('.pagination a').removeClass('no'); $('.pagination a').each(function(){ var name=$(this).attr('href').split('#')[1]; var o=$('[name="'+name+'"]:checked'); if (o.length==0) { $(this).addClass('no'); }; }); }); }); </script> </head> <body> <div class='test-data'> <div class='question' data-id='1' id='question-1'> <p class='q'>Вопрос 1</p> <p class='a'><input type='radio' id='answer-1' name='question-1' value='1'> <label for='answer-1'>Ответ 1</label></p> <p class='a'><input type='radio' id='answer-2' name='question-1' value='2'> <label for='answer-2'>Ответ 2</label></p> <p class='a'><input type='radio' id='answer-3' name='question-1' value='3'> <label for='answer-3'>Ответ 3</label></p> </div> <div class='question' data-id='2' id='question-2'> <p class='q'>Вопрос 2</p> <p class='a'><input type='radio' id='answer-4' name='question-2' value='4'> <label for='answer-4'>Ответ 1</label></p> <p class='a'><input type='radio' id='answer-5' name='question-2' value='5'> <label for='answer-5'>Ответ 2</label></p> </div> </div> <div class="pagination"> <a class="nav-active" href="#question-1">1</a> <a href="#question-2">2</a> <a href="#question-5">3</a> </div> <button class='center btn' id='btn'>Результаты</button> </body> </html> |
Спасибо большое!
А можно ли вызывать функцию при нажатии на любой input? btn.onclick Цель: У пользователя например 40 вопросов (40 пагинаций), он может пропустить вопрос и не нажать input и при нажатии на другой будет срабатывать эта функция (чтобы можно было увидеть вопрос, где не выбран Input) |
SLameN,
поставьте на 'test-data' document.querySelector('.test-data').onclick |
Цитата:
|
Часовой пояс GMT +3, время: 00:26. |