 
			
				31.10.2017, 11:57
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.12.2012 
					
					
					
						Сообщений: 3,841
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		the_little, от переменной "$t" можно вовсе избавиться, она фактически лишняя. 
Если её удалить, то переменная "bool" должна выглядеть так:
 
bool=this.id=='u-m'
 
В обработчике события слово "this" - ссылка на элемент, на котором произошло событие. 
В переменной "bool" записано действительно ли событие произошло на элементе, который содержит id='u-m'.
 
Переменная "amount". 
При её инициализации воспользовался " тернарным оператором". 
Если значение переменной "bool" - истина, то производятся математические операции, в противном случае в эту переменную записывается значение из элемента с id='b-m'.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				31.10.2017, 12:24
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.09.2017 
					
					
					
						Сообщений: 186
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 такой вопрос появился. 
В поле с id='b-m' по умолчанию не было значения. 
Я прописал туда value="1" 
 
Но после очищения поля с id='n-m' - там остается 0, а не 1 
И в поля куда выводятся результаты вычислений не возвращается "?", который там изначально стоял. 
 
как это можно как то исправить? 
 
я пробовал задавать через 
if(um < 1) { 
$("#b-m").val(1);  
} 
 
но тогда он не дает ввести свое значение в id='b-m' если первое поле пустое( 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось the_little, 31.10.2017 в 12:33.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				31.10.2017, 12:34
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.12.2012 
					
					
					
						Сообщений: 3,841
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 the_little, без макета сложно сказать. 
Если поле с id='n-m' имеет type='number', то попробуйте добавить атрибут "min=0". 
Для знака вопроса используйте атрибут "placeholder". 
 
И задавайте идентификаторы и имена полей по-человечески. 
Что такое "n-m" и т.п. совершенно непонятно. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				31.10.2017, 12:41
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.09.2017 
					
					
					
						Сообщений: 186
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		смысл немного другой. 
Вот, посмотрите, если не сложно.
 http://e-dz.ru/products/001-moskito-dikiy
Там количество упаковок по умолчанию стоит =1 
Потом можно менять оба поля, но если верхнее поле  
"Введите требуемую площадь:" очистить, то во втором поле "количество упаковок" снова появится 1  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				31.10.2017, 12:49
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.12.2012 
					
					
					
						Сообщений: 3,841
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		the_little, вы все поправили?
 
	
 
	| 
		
			Сообщение от the_little
			
		
	 | 
 
	
		Но после очищения поля с id='n-m' - там остается 0, а не 1 
И в поля куда выводятся результаты вычислений не возвращается "?", который там изначально стоял.
	 | 
 
	
 
 Сейчас все работает как нужно.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				31.10.2017, 12:55
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.09.2017 
					
					
					
						Сообщений: 186
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от Nexus
			 
		
	 | 
 
	
		the_little, вы все поправили? 
 
Сейчас все работает как нужно.
	 | 
 
	
 
 это на сайте работает нормально)) а у меня нет...
 
У меня если я очищаю поле с площадью - в поле количество упаковок остается 0. 
А нужно чтобы оставалась 1.
 
<!DOCTYPE html>
<html lang=ru> 
<head> 
<meta charset="utf-8">  
<title>Калькулятор</title>  
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
<style type="text/css">
	#calc .description { margin-bottom: 30px; }
	#calc .old-price { text-decoration: line-through; }
	#calc .new-price { color: darkred; }
	#calc .price { margin-bottom: 30px; }
	#calc label { margin-bottom: 20px; }
	input::-webkit-outer-spin-button,
	input::-webkit-inner-spin-button {
    /* display: none; <- Crashes Chrome on hover */
    -webkit-appearance: none;
    margin: 0; /* <-- Apparently some margin are still there even though it's hidden */
}
</style> 
<div id="calc">
	<div class="description">
		<h4>Описание товара</h4>
		...<br>
		Кол-во м2 в уп.: <span id="count">1.9218</span> м2
	</div>
	<div class="price">
		<span>Цена:</span>
		<span class="old-price">1590</span>
		<span>руб.</span>
		<span class="new-price">1462</span>
		<span>руб.</span>
	</div>
	<div>
		<label for="u-m">Введите требуюмую площадь: </label>
                <input type="number" step="any" name="user_amount" id="u-m" min="0">
		<span>( <span class="calc-amount">?</span> м) = <span class="calc-price">?</span> руб.</span>
		<br><br>
		<label for="b-m">Количество упаковок: </label>
		<input type="number" step="1" name="bag_amount" id="b-m" min="1" value="1">
	</div>
</div>
<script type="text/javascript">
$(document).ready(function() {
	$("#b-m,#u-m").keyup(function(){		
		var $t=$(this),						
			bool=$t.attr('id')=='u-m',		
			um=$("#u-m").val(),
			count=$("#count").html(),
			amount=bool?					
				Math.ceil(um / count):      
				$("#b-m").val(),
			price=$(".new-price").html();
			
		if(bool)							
			$("#b-m").val(amount);
		$(".calc-amount").text(amount * count);
		$(".calc-price").text((amount * count * price).toFixed(2));
	});
});
</script>
</body>
</html>
 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось the_little, 31.10.2017 в 13:12.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				31.10.2017, 13:03
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.09.2017 
					
					
					
						Сообщений: 186
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 что-то не появляется кнопка запуска кода... 
Смысл в том, что при удалении последней цифры из первого поля - запускается функция, и она передает 0 во второе поле. 
А этого нужно избежать. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				31.10.2017, 13:08
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.12.2012 
					
					
					
						Сообщений: 3,841
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 the_little, добавьте условие. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				31.10.2017, 13:14
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.09.2017 
					
					
					
						Сообщений: 186
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от Nexus
			 
		
	 | 
 
	| 
		the_little, добавьте условие.
	 | 
 
	
 
 О, сделал код выше запускаемым))
 
я писал условие, что если um < 1, то передать значение 1 во второе поле. 
И все получалось.
 
Но, при таком раскладе, я не мог менять второе поле, пока в первом пусто!
 
Если в первом 1 или больше, то пожалуйста. 
А если стереть, то он ставит 1 и не дает его менять...  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				31.10.2017, 15:38
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.09.2017 
					
					
					
						Сообщений: 186
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 min="0" тут не помогут, так как они не дают уйти вниз, если управлять стрелками в поле. 
Стрелки я отключил. 
 
Через if не получается... 
 
может еще какие-то варианты есть? 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |