Правильное написание кода
Здравствуйте.
Такая ситуация, на странице имеются радио кнопки, при нажатии на которые выводится значение input. Вот так все работает отлично (групп в примере 3, но будет около 20): Вот пример скрипта ниже: http://agroachtuba.ru/testing/index2.php <script> window.onclick = function onclickRadio1() { var nameRadio1 = document.getElementsByName('nameRadio1'); var nameRadio2 = document.getElementsByName('nameRadio2'); var nameRadio3 = document.getElementsByName('nameRadio3'); for (var i = 0; i < nameRadio1.length; i++) { if (nameRadio1[i].type === 'radio' && nameRadio1[i].checked) { rezultatRadio1 = nameRadio1[i].value; } } for (var i = 0; i < nameRadio2.length; i++) { if (nameRadio2[i].type === 'radio' && nameRadio2[i].checked) { rezultatRadio2 = nameRadio2[i].value; } } for (var i = 0; i < nameRadio3.length; i++) { if (nameRadio3[i].type === 'radio' && nameRadio3[i].checked) { rezultatRadio3 = nameRadio3[i].value; } } document.getElementById('result1').innerHTML = rezultatRadio1; document.getElementById('result2').innerHTML = rezultatRadio2; document.getElementById('result3').innerHTML = rezultatRadio3; } </script> <form> <div class="element-textarea2"> <input type="radio" id="dplcment-01" name="nameRadio1" value="28" checked="checked"/> <input type="radio" id="dplcment-02" name="nameRadio1" value="38"/> <input type="radio" id="dplcment-03" name="nameRadio1" value="65"/> </div> <span class="price" id="result1">28</span> </form> <form> <div class="element-textarea2"> <input type="radio" id="dplcment-01" name="nameRadio2" value="10" checked="checked"/> <input type="radio" id="dplcment-02" name="nameRadio2" value="20"/> <input type="radio" id="dplcment-03" name="nameRadio2" value="30"/> </div> <span class="price" id="result2">10</span> </form> <form> <div class="element-textarea2"> <input type="radio" id="dplcment-01" name="nameRadio3" value="12" checked="checked"/> <input type="radio" id="dplcment-02" name="nameRadio3" value="13"/> <input type="radio" id="dplcment-03" name="nameRadio3" value="14"/> </div> <span class="price" id="result3">12</span> </form> Все отлично при нажатии на радио подставляется в span с id = result Но, с точки зрения программирования, этот не "код": Как сделать его более "правильным": Помогите пожалуйста форумчане! |
genny45,
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <script> window.onclick = function onclickRadio1(event) { var el = event.target; if (el.type && el.type === 'radio' && el.checked) el.form.querySelector('.price').innerHTML = el.value } </script> <form> <div class="element-textarea2"> <input type="radio" id="dplcment-01" name="nameRadio1" value="28" checked="checked"/> <input type="radio" id="dplcment-02" name="nameRadio1" value="38"/> <input type="radio" id="dplcment-03" name="nameRadio1" value="65"/> </div> <span class="price" id="result1">28</span> </form> <form> <div class="element-textarea2"> <input type="radio" id="dplcment-01" name="nameRadio2" value="10" checked="checked"/> <input type="radio" id="dplcment-02" name="nameRadio2" value="20"/> <input type="radio" id="dplcment-03" name="nameRadio2" value="30"/> </div> <span class="price" id="result2">10</span> </form> <form> <div class="element-textarea2"> <input type="radio" id="dplcment-01" name="nameRadio3" value="12" checked="checked"/> <input type="radio" id="dplcment-02" name="nameRadio3" value="13"/> <input type="radio" id="dplcment-03" name="nameRadio3" value="14"/> </div> <span class="price" id="result3">12</span> </form> </body> </html> |
Цитата:
Для этого понадобятся массивы... Для более сложных данных добавятся объекты... Сколько у тебя радио груп? Ровно столько, сколько элементов с классом element-textarea2. Значит три твоих цикла превращаются в один, но вложенный в другой. А переменные типа rezultatRadioN в массив rezultatRadio... |
Спасибо огромное!
Вы мне очень помогли! |
Часовой пояс GMT +3, время: 05:50. |