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

Сообщение от amd3000
Вариант предложеный во втором сообщении не работает в виду того что 2 колонки с тегом input. Мои потуги сделать что-либо подобное с getElementsByName и getElementsByClassName привели к нулевому результату.
учись путешествовать по DOM, эту задачу ты должен дорешать сам и выложить результат, иначе

Это работа, и за нее обычно платят деньги.
Для таких сообщений предназначен раздел форума "Работа"


вот тебе вариант через делегирование событий

<form id="RecountForm">
	<table class="table">
		<tr><th>Базовая Цена</th> <th>Наценка</th>                                 <th>Цена</th>         </tr>
		<tr><td id="cena1">11</td><td><input class="inp" value="22"></td><td id="result1"></td></tr>
		<tr><td id="cena2">10</td><td><input class="inp" value="23"></td><td id="result2"></td></tr>
		<tr><td id="cena3">15</td><td><input class="inp" value="24"></td><td id="result3"></td></tr>
		<tr><td id="cena4">20</td><td><input class="inp" value="25"></td><td id="result4"></td></tr>
	</table>
</form>
<script>
(function() {
	function calcFromInput(target) {
		var parent = target.parentNode;
		parent.nextElementSibling.innerHTML = target.value * parent.previousElementSibling.innerHTML;
	}
	
	document.getElementsByClassName("table")[0].oninput = function (e) {
		var target = e.target;
		if (target.tagName == "INPUT") {
			calcFromInput(target);
		}
	}
	
	function init() {
		var inputs = document.getElementsByClassName("inp");
		var length = inputs.length;
		for (var i = 0; i < length; i++) {
			calcFromInput(inputs[i]);
		}
	}
	init();
	
})();
</script>
Ответить с цитированием