Переделка кода
Привет всем.
Подскажите пожалуйста как переделать код чтобы. При первом помеченном чебоксе сумма не прибавлялась при пометке второго и последуйщего сумма начала прибавляться. Вот собственно код: <form name="Sum"> <input type="checkbox" value="1"/> <input type="checkbox" value="2"/> <input type="checkbox"/> <input type="checkbox" value=""/> <input type="checkbox" value="3"/> <input type="checkbox" value="4"/> <input type="checkbox" value="5"/> <output id="rezultat">Сумма: 0</output> </form>
var s = document.forms.Sum,
d = s.querySelectorAll('input[type="checkbox"]:not([value]), input[type="checkbox"][value=""]');
for (var i = 0; i < d.length; i++) // чтобы не было написано NaN, убираем в disabled пункты, где не прописаны значения
d[i].disabled = true;
s.onchange = function() { // начало работы функции сложения
var n = s.querySelectorAll('[type="checkbox"]'),
itog = 0;
for(var j=0; j<n.length; j++)
n[j].checked ? itog += parseFloat(n[j].value) : itog;
document.getElementById('rezultat').innerHTML = 'Сумма: ' + itog;
}
|
Ramzes94,
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<form name="Sum">
<input type="checkbox" value="1"/>
<input type="checkbox" value="2"/>
<input type="checkbox"/>
<input type="checkbox" value=""/>
<input type="checkbox" value="3"/>
<input type="checkbox" value="4"/>
<input type="checkbox" value="5"/>
<output id="rezultat">Сумма: 0</output>
</form>
<script>
var s = document.forms.Sum;
s.onchange = function() { // начало работы функции сложения
var n = s.querySelectorAll(':checked'),
itog = 0;
for(var j=0; j<n.length; j++)
itog += +n[j].value||0;
document.getElementById('rezultat').innerHTML = 'Сумма: ' + itog;
}
</script>
</body>
</html>
|
Рони привет дружище)))
Подскажи пожалуйста можно сделать так чтобы javascript автоматом определял что: если выбран один чебокс, любой не важно какой, то сумма не увеличатся.
При выборе двух чебоксов считается сумма которая указанна в втором чебоксек. |
Цитата:
|
Ramzes94,
задача про the horse in vacuum ?
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<form name="Sum">
<input type="checkbox" value="1"/>
<input type="checkbox" value="2"/>
<input type="checkbox"/>
<input type="checkbox" value=""/>
<input type="checkbox" value="3"/>
<input type="checkbox" value="4"/>
<input type="checkbox" value="5"/>
<output id="rezultat">Сумма: 0</output>
</form>
<script>
var s = document.forms.Sum, temp;
s.onchange = function() { // начало работы функции сложения
var n = s.querySelectorAll(':checked'),
itog = 0;
if(n.length == 1) {temp = n[0]};
if(!n.length) {temp = null};
for(var j=0; j<n.length; j++)
if(n[j] != temp) itog += +n[j].value||0;
document.getElementById('rezultat').innerHTML = 'Сумма: ' + itog;
}
</script>
</body>
</html>
|
Отлично от души
Спасибо дружище то что надо)
|
| Часовой пояс GMT +3, время: 16:11. |