Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.03.2014, 10:38
Аспирант
Отправить личное сообщение для Officeoff.ru Посмотреть профиль Найти все сообщения от Officeoff.ru
 
Регистрация: 14.03.2014
Сообщений: 64

калькулятор jquery
Доброго времени суток. Не могу понять, почему не происходит умножение.
<html>
<head>
<script  type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.str').on("keyup",".quantity",".price",function(){
	var kol = $("input[name='quantity']",'.quantity').val();
	var price = $("input[name='price']",'.price').val();
	var sum = $("input[name='sum']",'.sum').val();
	var result = kol * price;
	if(!isNaN(result)){
     sum.val(result);
   }
});
});
</script>
</head>
<body><table class='table'>
<tr class='str'><td><input name='quantity' class='quantity' type='text'></td><td><input name='price' class='price' type='text'></td><td><input name='sum' class='sum' type='text'></td></tr>
</table>
</body>
</html>

Должно происходить по событию keyup.
Ответить с цитированием
  #2 (permalink)  
Старый 26.03.2014, 11:06
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от Officeoff.ru
Не могу понять, почему не происходит умножение
Понимать-то особо нечего... Просто ты фигню какую-то написал...
Как вариант

<html>
<head>
<script  type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
	$('.str').on("keyup",".quantity, .price",function(){
		var o=$(this.parentNode.parentNode);
		var kol = o.find('.quantity').val();
		var price = o.find('.price').val();
		var result = kol * price;
		if (!isNaN(result)) {
			o.find('.sum').val(result);
		};
	});
});
</script>
</head>
<body><table class='table'>
<tr class='str'><td><input name='quantity' class='quantity' type='text'></td><td><input name='price' class='price' type='text'></td><td><input name='sum' class='sum' type='text'></td></tr>
</table>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 26.03.2014, 11:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

ksa,
o=$(this.parentNode.parentNode);

не
o=$(this).parents("tr")
? или
o=$(this).parents(".str")
Ответить с цитированием
  #4 (permalink)  
Старый 26.03.2014, 11:35
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Почему то вспомнилось это.
Ответить с цитированием
  #5 (permalink)  
Старый 26.03.2014, 11:52
Аспирант
Отправить личное сообщение для Officeoff.ru Посмотреть профиль Найти все сообщения от Officeoff.ru
 
Регистрация: 14.03.2014
Сообщений: 64

Спасибо. Действительно бред был ))
Не скажите еще, как можно сложить все результаты строк?
То есть если
<tr class='str'><td><input name='quantity' class='quantity' type='text'></td><td><input name='price' class='price' type='text'></td><td><input name='sum' class='sum' type='text'></td></tr>
таких строк 10, например. То как сложить все input class=sum?
Ответить с цитированием
  #6 (permalink)  
Старый 26.03.2014, 11:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Officeoff.ru,
обойти циклом этот класс
Ответить с цитированием
  #7 (permalink)  
Старый 26.03.2014, 12:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Сообщение от Officeoff.ru
То как сложить все input class=sum
а у нас было )))

и вариант для медитации
http://javascript.ru/forum/dom-window/45148-kak-sdelat-takojj-kalkulyator-pri-uslovii-chto-tovarov-mozhet-byt-80-100-a.html#post298023
Ответить с цитированием
  #8 (permalink)  
Старый 26.03.2014, 12:44
Аспирант
Отправить личное сообщение для Officeoff.ru Посмотреть профиль Найти все сообщения от Officeoff.ru
 
Регистрация: 14.03.2014
Сообщений: 64

Сообщение от рони Посмотреть сообщение
а у нас было )))

и вариант для медитации
http://javascript.ru/forum/dom-window/45148-kak-sdelat-takojj-kalkulyator-pri-uslovii-chto-tovarov-mozhet-byt-80-100-a.html#post298023
Не понимаю я!
<html>
<head>
<script  type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
	$('.str').on("keyup",".quantity, .price, .discount, .sum" ,function(){
		var o=$(this.parentNode.parentNode);
		var kol = o.find('.quantity').val();
		var price = o.find('.price').val();
		var discount = o.find('.discount').val();
		var result = kol * price;
			if (discount.length>0){
				var discount = result / 100 * discount;
				var result = result - discount;
			}
		if (!isNaN(result)) {
			var result = Math.floor(result*100)/100
			o.find('.sum').val(result);
		}
		$(".sum").each( function () {
		allsum += parseInt( $(this).text(), 10 );
		});
		alert(allsum);
	});
});
</script>
</head>
<body><table class='table'>
<tr class='str'><td><input name='quantity' class='quantity' type='text'></td><td><input name='price' class='price' type='text'></td><td><input name='discount' class='discount' type='text'></td><td><input name='sum' class='sum' type='text'></td></tr>
<tr class='str'><td><input name='quantity' class='quantity' type='text'></td><td><input name='price' class='price' type='text'></td><td><input name='discount' class='discount' type='text'></td><td><input name='sum' class='sum' type='text'></td></tr>
<tr class='str'><td><input name='quantity' class='quantity' type='text'></td><td><input name='price' class='price' type='text'></td><td><input name='discount' class='discount' type='text'></td><td><input name='sum' class='sum' type='text'></td></tr>
<tr class='str'><td colspan='3'></td><td><input class='allsum' type='text'></td></tr>
</table>
</body>
</html>

Написал такую фигню. В итоге allsum = NaN
Ответить с цитированием
  #9 (permalink)  
Старый 26.03.2014, 13:12
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Officeoff.ru,
<!DOCTYPE HTML>

<html>
<head>
<meta charset="utf-8">
<script  type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
	$('.str').on("keyup",".quantity, .price, .discount, .sum" ,function(){
		var o=$(this.parentNode.parentNode);
		var kol = o.find('.quantity').val();
		var price = o.find('.price').val();
		var discount = o.find('.discount').val();
		var result = kol * price;
			if (discount.length>0){
				var discount = result / 100 * discount;
				var result = result - discount;
			}
		if (!isNaN(result)) {
			var result = Math.floor(result*100)/100
			o.find('.sum').val(result);
		}
        var allsum = 0;
		$(".sum").each( function () {
		allsum += +(parseFloat($(this).val())||0).toFixed(2);
		});
		$('.allsum').val(allsum);
	});
});
</script>
</head>
<body><table class='table'>
<tr class='str'><td><input name='quantity' class='quantity' type='text'></td><td><input name='price' class='price' type='text'></td><td><input name='discount' class='discount' type='text'></td><td><input name='sum' class='sum' type='text'></td></tr>
<tr class='str'><td><input name='quantity' class='quantity' type='text'></td><td><input name='price' class='price' type='text'></td><td><input name='discount' class='discount' type='text'></td><td><input name='sum' class='sum' type='text'></td></tr>
<tr class='str'><td><input name='quantity' class='quantity' type='text'></td><td><input name='price' class='price' type='text'></td><td><input name='discount' class='discount' type='text'></td><td><input name='sum' class='sum' type='text'></td></tr>
<tr class='str'><td colspan='3'></td><td><input class='allsum' type='text'></td></tr>
</table>
</body>
</html>
Ответить с цитированием
  #10 (permalink)  
Старый 26.03.2014, 13:29
Аспирант
Отправить личное сообщение для Officeoff.ru Посмотреть профиль Найти все сообщения от Officeoff.ru
 
Регистрация: 14.03.2014
Сообщений: 64

рони, спасибо.
Сделал немного по другому, т.к. нужны были знаки после точки
var allsum = 0
        $(".sum").each( function () {
        allsum += Math.floor($(this).val()*100)/100;
        });
        $('.allsum').val(allsum);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
хочу инвайт на хабр macdack Оффтопик 45 28.07.2013 23:18
Вопрос поддержки старых методов jQuery antonM jQuery 1 04.10.2012 00:08
Калькулятор на JQuery dailclever Элементы интерфейса 5 13.08.2012 00:02
Калькулятор на jquery okapo AJAX и COMET 2 10.03.2012 02:07
Jquery калькулятор lericen Элементы интерфейса 0 26.09.2011 15:24