калькулятор для расчета стоимости
Ребят. извините что дублирую подобную тему) но вопрос немного другой теперь.
Есть форма. <form> <p><input name="itemtype1" id="a" type="radio" value="10"> Значение (A=10)</p> <p><input name="itemtype1" id="b" type="radio" value="20"> Значение (B=20)</p> <p><input name="itemtype1" id="c" type="radio" value="30"> Значение (C=30)</p> <p><input type="checkbox" name="itemtype2" id="d" value="10"> <label>Значение (D=10)</label></p> <p><input type="checkbox" name="itemtype2" id="e" value="20"> <label>Значение (E=20)</label></p> <select name="itemtype3" id="f"> <option value="100">Значение (F=100)</option> <option value="200">Значение (F=200)</option> <option value="300">Значение (F=300)</option> </select> <p><input type="text" name="itemtype4" id="g" value="0"> Значение (G=по умолчанию 0, число будет введенно в ручную)</p> <p>Итого: <output name="o" for="a b c d e f g">0</output></p> </form> Как видите в ней разные поля. Такие как: text,radio,checkbox и select и в каждой из них свои "целые" единичные значения. Задача состоит в том что нужно сложить знаком "+" эти значения и вывести их итоговую сумму. Подскажите пожалуйста готовое решение для такой операции. Желательно такое чтобы в случае надобности добавить новый input или select, я могла легко дописать его в скрипт.. Прошу только без сложных ботанческих выражений) я новичек. вы мужики в конце концов?) помогите даме. уже целый день потратила на это)) |
калькулятор для расчета стоимости
Anushki,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
</style>
</head>
<body>
<form>
<p><input name="itemtype1" id="a" type="radio" value="10"> Значение (A=10)</p>
<p><input name="itemtype1" id="b" type="radio" value="20"> Значение (B=20)</p>
<p><input name="itemtype1" id="c" type="radio" value="30"> Значение (C=30)</p>
<p><input type="checkbox" name="itemtype2" id="d" value="10"> <label>Значение (D=10)</label></p>
<p><input type="checkbox" name="itemtype2" id="e" value="20"> <label>Значение (E=20)</label></p>
<select name="itemtype3" id="f">
<option value="100">Значение (F=100)</option>
<option value="200">Значение (F=200)</option>
<option value="300">Значение (F=300)</option>
</select>
<p><input type="text" name="itemtype4" id="g" value="0"> Значение (G=по умолчанию 0, число будет введенно в ручную)</p>
<p>Итого: <output name="o" for="a b c d e f g">0</output></p>
</form>
<script>
window.addEventListener('DOMContentLoaded', function() {
var form = document.querySelector('form'),
elem = form.querySelectorAll('[name^="itemtype"]'),
output = form.querySelector('output');
function total()
{
output.innerHTML = [].reduce.call( elem, function(sum, el) {
var n = (+el.value||0) * (el.checked || el.tagName == "SELECT" || el.type == "text");
return sum + n
},0);
}
form.addEventListener('change', total);
form.addEventListener('input', total);
});
</script>
</body>
</html>
|
Рони. огромное тебе спасибо ) выручил. наконец вопрос закрыт. я весь день не могла ничего сделать. Пробовала сама но пока не выходит. благодарю за готовое решение.. с меня отзыв и +
|
| Часовой пояс GMT +3, время: 05:31. |