Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Нужно что бы при вводе числа в поле калькулятора выводилось другое число (https://javascript.ru/forum/misc/56985-nuzhno-chto-pri-vvode-chisla-v-pole-kalkulyatora-vyvodilos-drugoe-chislo.html)

Valtar7 13.07.2015 17:48

Нужно что бы при вводе числа в поле калькулятора выводилось другое число
 
Здравствуйте. Столкнулся с проблемой делая калькулятор для товаров.
Не знаю как дописать скрипт.
Суть в следующем: Есть список select с карнизами в нём нужно выбрать тип корнизов Мини,Стандарт. А в поле с шириной при вводе в него значения к примеру 0.95 Мини должна подставляться ценна 898 при 1.05 или 1.5 946 рублей.
При смене select крнизов с Мини на стандарт цена должна подставляться при 0.95 на 1246.


// JavaScript Document
$(document).ready(function() {
	//Немного оформления в стиле зебры
	$("#calculate").find("tr:odd").css({"background":"#fbdd59", "opacity":"0.8"});
	
	//Калькулятор
	$("#tableSelect").change(function() {
		var totalSum = 0;

		$("input[id^='pos'], select[id^='pos']").each(function() {
			var idElement = "#"+$(this).attr("id"), 
				priceField = parseInt($(idElement+"_price").val())||0, 
				priceField1 = parseInt($(idElement+"_price1").text())||0, 
				countField = parseInt($(this).val())||0; 
				countField1 = parseInt($(this).val())||0; 
			
			$(idElement+"_count").text(priceField * countField); 
			$(idElement+"_count1").text(priceField1 * countField1); 
			totalSum += priceField * countField;
			totalSum += priceField1 * countField1;
		});
		$("#count_price span").text(totalSum);
	});
});


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link href="style.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="scripts.js"></script>
</head>

<body>

 <form id="tableSelect" action="action.php" method="post">

Метры
            <input id="pos_1_price" type="text" class="vertical"></br>
        	Полотно Бельгия Polyplast
            </br>
            	<select id="pos_1" name="veduschiy">
                	<option value="0" selected>-</option>
                	<option value="490">Матовое полотно</option>
                    <option value="690">Глянец</option>
                    <option value="790">Сатин</option>
                </select></br>
			<div id="pos_1_count">0</div>
			
			Карниз
	       <select id="pos_2" name="veduschiy">
                	<option value="0" selected>-</option>
                	<option value="0">Мини "Зебра"</option>
                    <option value="0">Стандарт "Зебра"</option>
                    <option value="0">С декоративным коробом</option>
                </select></br>
			Ширина
            <input id="pos_2_price" type="text" class="vertical"></br>
			</br>
			<div id="pos_2_count">0</div>

 <div id="count_price"><p>Итого: <span></span> руб.</p></div>
</form>
</body>
</html>

kostyanet 13.07.2015 20:16

Так заполните value вместо нулей ценниками или нормализованными коэффициентами.

Valtar7 14.07.2015 07:35

Я несколько не правильно написал суть проблемы.
Есть таблица с ценами, длинные select не подходят. Как сделать коэффициент с такими суммами я не совсем понимаю.
Ширина --Мини "Зебра"--Стандарт "Зебра"--С декоративным коробом
0.40--------- 496------------------1000 -----------------1295
0.45---------520-------------------1000 ----------------1295
0.75---------718 ------------------ 1032 ----------------1336
1.00--------- 946------------------ 1202 ----------------1556

kostyanet 14.07.2015 08:04

Ширина - список, остальное опции радиобаттонами. Список выдает индекс элемента в массиве данных, а радиобаттоны индекс элемента в элементе. То есть данные это будет массив массивов

prices=[
   [1.55,null,1680,2174],
   [2.55,1345,5654,9875],
   [3.55,3736,4680,7184],
    /* etc */
];


Либо прямо в option силекта профтыкайте дата-теги со всеми опциями. Короче, тут как угодно можно сделать, интерфейс тут тривиальный.


Часовой пояс GMT +3, время: 07:25.