Суммирование значений по всем динамически добавленным полям
Добрый день. Сразу скажу, что я очень слабо разбираюсь в JS, но стараюсь из всех сил.
Передо мной стала задача: сделать суммирование значений по всем динамически добавленным полям. У меня есть механизм динамического создания двух input полей и расчет сложения значений из них с выводом в span. Поля имеют ID item5 и itemm5, а span - result5, где 5 - номер динамически добавленной строки с полями. Т.е. грубо говоря, выглядит это так: [2]+[2] = 4 (id элементов в окончании имеют "1") [2]+[3] = 5 (id элементов в окончании имеют "2") [1]+[1] = 2 (id элементов в окончании имеют "3") и т.д. Мне нужно произвести подсчет значений из input item и span. Как это сделать? |
Какая разница че какие у них айдишники :D
Ты просто когда создаешь их - складывай в массивчик. А когда нужно - пройдись по массивчику и просуммируй свойства .value инпутов. Вобще до конца не понял че ты там мутишь. Показывай пример что-ли. |
Да, как понимаю про массив Вы правы. Я не знаю как его реализовать. ID я привел для того, чтоб стало понятно какая закономерность их создания.
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
<script language="javascript">
var items=1;
function AddItem() {
var div=document.getElementById("items");
var button=document.getElementById("add");
items++;
var newitem="<strong>Поле " + items + ": </strong>";
newitem+="<select onchange=\"calc(" + items + ")\" name='select_name" + items + "' id='select_name" + items + "'>";
newitem+="<option value='1'>один";
newitem+="<option value='2' selected='selected'>два";
newitem+="<option value='3'>три";
newitem+="</select>";
var newitemm="<strong> Поле_ " + items + ": </strong>";
newitemm+="<input value=\"3\" onchange=\"calc(" + items + ")\" type=\"text\" name=\"itemm" + items +"\" id =\"itemm" + items +"\" size=\"45\">";
newitemm+="Стоимость: <span id=\"result" + items + "\">0</span> руб.";
newnode=document.createElement("div");
newnode.id = "item_" + items;
newnode.innerHTML=newitem+newitemm;
div.insertBefore(newnode,button);
var strok = document.getElementById("strok"); //получаем ссылку на элемент span, в него будем писать количество всех строк
var strokk = items;
strok.innerHTML = strokk;
}
function calc(t) {
var type_design = document.getElementById("select_name" + t); //получаем ссылку на элемент Select
var count = document.getElementById("itemm" + t); //получаем ссылку на элемент input
var result = document.getElementById("result" + t); //получаем ссылку на элемент span, в него будем писать стоимость одной строки
var resultitog = document.getElementById("resultitog"); //получаем ссылку на элемент span, в него будем писать стоимость всех строк
var price = 0;
var priceitog = 0;
price += parseInt(type_design.options[type_design.selectedIndex].value);
price = price + parseInt(count.value);
result.innerHTML = price;
resultitog.innerHTML = priceitog;
}
</script>
</head>
<body>
<form method="post" action="/calc.php?=send">
<div ID="items">
<div id="item_2">
<strong>Поле 1: </strong>
<select id="select_name1" name="select_name1" onchange="calc(1)">
<option value="1">один</option>
<option selected="selected" value="2">два</option>
<option value="3">три</option>
</select>
<strong>Поле_ 1: </strong>
<input id="itemm1" type="text" size="45" name="itemm1" onchange="calc(1)" value="3">
Стоимость: <span id="result1">4</span>руб.
</div>
<input type="button" value="Добавить поле" onClick="AddItem();" ID="add">
</div>
<input type="submit" value="Отправить" name="submit">
</form>
<div>Всего строк: <span id="strok">1</span> руб.</div>
<div>Всего значения по input: <span id="summainput">1</span> руб.</div>
<div>Стоимость заказа: <span id="resultitog">0</span> руб.</div>
</body>
</html>
|
| Часовой пояс GMT +3, время: 01:07. |