Если проверка на состояние радио-баттона принципиальна вне тела функции, то можно навешивать/удалять обработчик на кнопку в соответствии с активным радио-баттоном.
В теле функции в качестве проверки есть строка console.log('function is starting'); Когда первый радио-баттон неактивен, то обработчик события удаляется с кнопки и функция, разумеется, не срабатывает. В консоль ничего не выводится. Постановка задачи интересная. Почему нельзя проверить активность радио-баттона в теле функции и уже дальше плясать от этого? <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <input type="radio" name="rad" id="radio1" > <input type="radio" name="rad" id="radio2"> <br> <input type="button" value="go" id="btn"> <script> var radio1 = document.getElementById('radio1'); var radio2 = document.getElementById('radio2') var btn = document.getElementById('btn'); function myAlert(){ console.log('function is starting'); alert('hi!'); } radio1.onchange = function(){ btn.addEventListener('click', myAlert); } radio2.onchange = function(){ btn.removeEventListener('click', myAlert); } </script> </body> </html> |
Цитата:
Спасибо Вам за не менее интересное решение! ) |
Часовой пояс GMT +3, время: 01:40. |