Показать сообщение отдельно
  #10 (permalink)  
Старый 25.09.2014, 23:50
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от amd3000
Как-бы работает. но есть одно НО!!!

Всё работает если менять данные в столбце Базовая цена.

Как вызвать функцию перещёта ещё и по изменению в столбце Наценка?
не сложно, не так ли?

<form id="RecountForm">
	<table class="table">
	<tr><th>Наценка</th><th>Базовая Цена</th><th>Цена</th></tr>
	<tr><td><input id="n1" type="text" value="22"></td><td><input value="1.5"></td><td id="result1"></td></tr>
	<tr><td><input id="n2" type="text" value="23"></td><td><input value="1.3"></td><td id="result2"></td></tr>
	<tr><td><input id="n3" type="text" value="24"></td><td><input value="1.1"></td><td id="result3"></td></tr>
	<tr><td><input id="n4" type="text" value="25"></td><td><input value="1.2"></td><td id="result4"></td></tr>
</table>
</form>
<script>
(function() {
	var table = document.getElementsByClassName("table")[0];
	
	function calcFromInput(target) {
		var grandparent = target.parentNode.parentNode;
		var inputs = grandparent.querySelectorAll("input");
		grandparent.children[2].innerHTML = Math.ceil(inputs[0].value * inputs[1].value);
	}
	
	table.oninput = function (e) {
		var target = e.target;
		if (target.tagName == "INPUT") {
			calcFromInput(target);
		}
	}
	
	function init() {
		var inputs = table.querySelectorAll("input");
		var length = inputs.length;
		for (var i = 0; i < length; i++) {
			calcFromInput(inputs[i]);
		}
	}
	init();
	
})();
</script>
Ответить с цитированием