Как сделать переменную функции onclick глобальной?
Есть такой работающий html код меню c радио кнопками и скрипт, показывающий значение выбранной по onclick радио кнопки в теле функции check(met), оператор alert('1 mtd= ' + mtd);. Проблема в том, что переменная mtd не видна за пределами функции check(met), хотя она объявлена как глобальная. Оператор return тоже не возвращает ее значение. Вопрос как сделать так чтобы переменную mtd можно было видеть во всем скрипте. Например, использовать в функции sum();. Конечно, если функцию sum() вложить в функцию check(met), то она будет работать, но хотелось бы чтобы все работало автономно. Извините за возможно не корректный вопрос.
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-UTF-8"/> <title>Gr</title> </head> <body> <form id="mainForm" name="mainForm" action=""> <input id=gr1 type="radio" name="met" onclick="check(this.value)" value="1"> G-1<br> <input id=gr2 type="radio" name="met" onclick="check(this.value)" value="2"> G-2<br> <input id=gr3 type="radio" name="met" onclick="check(this.value)" value="3"> G-3<br> <input id=gr4 type="radio" name="met" onclick="check(this.value)" value="4"> G-4<br> <br> </form> <script> var mtd; function check(met) { mtd = document.getElementById.value = met; alert('1 mtd= ' + mtd); return met; } alert('2 mtd= ' + mtd); function sum() { var x = mtd + 5; alert('x=' + x); } sum(); </script> </body> </html> |
Цитата:
|
Ты имеешь представление как все это работает?
К сожалению не очень, в этом то и проблема. И не нахожу где почитать. Да и о помощи попросил поэтому.
|
Цитата:
https://learn.javascript.ru/forms-submit Видос даже есть... https://www.youtube.com/watch?v=CFxMg5RAvvk |
Да хоть бы тут
Спасибо Ksa
|
Сделал так
<form id="mainForm" name="mainForm" action="#"> <input id=gr1 type="radio" name="met" value="1">G-1 <br> <input id=gr2 type="radio" name="met" value="2">G-2 <br> <input id=gr3 type="radio" name="met" value="3">G-3 <br> <input id=gr4 type="radio" name="met" value="4">G-4 <br> </form> <script> var form = document.getElementById("mainForm"); var mtd = document.getElementsByName("met"); form.addEventListener("click", function () { for (i = 0; i < mtd.length; i++) { if (mtd[i].checked) { alert("mtd = " + mtd[i].value); var x = +mtd[i].value + 5; alert("x = " + x); } } }); </script> |
Цитата:
<form id="mainForm" name="mainForm" action="#"> <input id=gr1 type="radio" name="met" value="1">G-1 <br> <input id=gr2 type="radio" name="met" value="2">G-2 <br> <input id=gr3 type="radio" name="met" value="3">G-3 <br> <input id=gr4 type="radio" name="met" value="4">G-4 <br> </form> <script> document.getElementById("mainForm").addEventListener("click", function () { var mtd = document.querySelector('[name="met"]:checked'); if (mtd) { alert("mtd = " + mtd.value); var x = +mtd.value + 5; alert("x = " + x); }; }); </script> |
Часовой пояс GMT +3, время: 11:01. |