Правильное написание кода
Здравствуйте.
Такая ситуация, на странице имеются радио кнопки, при нажатии на которые выводится значение 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, время: 21:24. |