Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.07.2015, 13:00
Интересующийся
Отправить личное сообщение для blogivan Посмотреть профиль Найти все сообщения от blogivan
 
Регистрация: 14.07.2015
Сообщений: 10

Пресловутый калькулятор(
Пришёл к следующему:

<html>
<head>
<style>
table{
background: #FFF7BF;
border-spacing: 0px;
border: 1px solid #f00;
}

table td{
padding: 10px;
border: 1px solid #f00;
}
</style>
</head>
<body>
<table>
<!--Шапка таблицы************************************ **************************-->
<tr>
<td>Наименование работ</td>
<td>Цена за кг.</td>
<td>Колличество кг.</td>
<td>Сумма</td>
</tr>
<!--Шапка таблицы************************************ **************************-->
<tr>
<script>
function ChangeOnFly()
{
var kg = document.getElementById('input_kg').value;

var tarif = document.getElementById('tarif_obl').value;

document.getElementById('dostavka').firstChild.nod eValue = kg*tarif;
}
</script>
<td>Картофель</td>
<td>50<input type="hidden" id="tarif_obl" value="50"></td>
<td><input id="input_kg" type="text" onFocus="this.select();" onKeyUp="ChangeOnFly();" name=kg></td>
<td><span id="dostavka">0</span></td>
</tr>
<!--************************************************** *************************-->
</table>
</body>
</html>

Теперь собственно сам вопрос. Нужно сделать много полей с разными овощами. Не могу врубиться каким образом ( Кто чем может
Ответить с цитированием
  #2 (permalink)  
Старый 15.07.2015, 13:12
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<input class="ovosch_kg" type="text" onFocus="this.select();" onKeyUp="ChangeOnFly(this);" name=kartoplya>

1. в Namе - писать овощ, а не кг - я так понимаю, что они все в кг
2. В скрипте Вам нужен список, точнее объект со списком соответствия овощ - cтоимость за килограмм.
типо
obj = {
 kartoplya : 22,
 konoplya  : 222
}

По onKeyUp функция ChangeOnFly(this) должна считывает по this - value и name текущего инпут, лезет в список и считывает стоимость за кг, перемножает стоимость на кг, складывает в другой объект итоговых стоимостей по овощам, которые суммируются по итоговой сумме и выводятся в 'итого:' (при вводе в очередной инпут) .

Последний раз редактировалось Deff, 15.07.2015 в 13:46.
Ответить с цитированием
  #3 (permalink)  
Старый 15.07.2015, 14:29
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от blogivan
Кто чем может
Могу только сказать что количество пишется с одной л.
Ответить с цитированием
  #4 (permalink)  
Старый 15.07.2015, 14:34
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Кстати, интерфейс типовой тележки заказов в сущности ничем не отличается от задачи автора темы. Ему только вместо товаров - количество с одной л которых умножается на цену и выводится в следующей колонке таблицы, - надо применить виды овощей или виды услуг.
Ответить с цитированием
  #5 (permalink)  
Старый 15.07.2015, 15:11
Аватар для psfdek
Профессор
Отправить личное сообщение для psfdek Посмотреть профиль Найти все сообщения от psfdek
 
Регистрация: 14.02.2014
Сообщений: 157

<html>
<head>
	<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.1.js"></script>
    <meta charset="utf-8"/>
<style>
table{
background: #FFF7BF;
border-spacing: 0px;
border: 1px solid #f00;
}

table td{
padding: 10px;
border: 1px solid #f00;
}
</style>
</head>
<body>
<table>
<!--Шапка таблицы************************************ **************************-->
<tr>
<td>Наименование работ</td>
<td>Цена за кг.</td>
<td>Колличество кг.</td>
<td>Сумма</td>
</tr>
<!--Шапка таблицы************************************ **************************-->
<tr>
<td>Картофель</td>
<td class="price_kg">
	<span class="value">50</span>
	<input name="price" type="hidden" value="50">
</td>
<td>
	<input class="input_kg" type="text" name="kg">
</td>
<td>
	<span class="dostavka">0</span></td>
</tr><tr>
<td>Картофель</td>
<td class="price_kg">
	<span class="value">30</span>
	<input name="price" type="hidden" value="30">
</td>
<td>
	<input class="input_kg" type="text" name="kg">
</td>
<td>
	<span class="dostavka">0</span></td>
</tr><tr>
<td>Картофель</td>
<td class="price_kg">
	<span class="value">90</span>
	<input name="price" type="hidden" value="90">
</td>
<td>
	<input class="input_kg" type="text" name="kg">
</td>
<td>
	<span class="dostavka">0</span></td>
</tr><tr>
<td>Картофель</td>
<td class="price_kg">
	<span class="value">70</span>
	<input name="price" type="hidden" value="70">
</td>
<td>
	<input class="input_kg" type="text" name="kg">
</td>
<td>
	<span class="dostavka">0</span></td>
</tr>
<!--************************************************** *************************-->
</table>
<script>
 $('.input_kg').on('keyup',function(){   
	var kg = $(this).val().replace (/\D/gi, '').replace (/^0+/, '');
	$(this).val(kg);
	var priceKg = $(this).closest("tr").find(".price_kg input[name=price]").val();
	var result = Math.round(kg * priceKg);
	var priceKg = $(this).closest("tr").find(".dostavka").text(result);
	
 });
 
 

</script>
</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 15.07.2015, 16:12
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Ну и как теперь сохранить что юзер навыбирал, или он каждый раз заново будет все выбирать?

Кстати суммы проекта нету.

То есть мы будем в соответсвии с уровнем вопрошанта изображать таких же отвечантов, типа, чтоб человека не обидеть - пусть мучается, каждый имеет право мучиться, а мы с удовольствием будем наблюдать.
Ответить с цитированием
  #7 (permalink)  
Старый 15.07.2015, 17:42
Интересующийся
Отправить личное сообщение для blogivan Посмотреть профиль Найти все сообщения от blogivan
 
Регистрация: 14.07.2015
Сообщений: 10

А как сделать поле в которое будет выводится итоговая стоимость всех овощей? Как то делали по клику на кнопку. Жмёшь посчитать иттог и выводит. а можно ли чтоб так же сразу в итого сумма менялась?
Ответить с цитированием
  #8 (permalink)  
Старый 17.07.2015, 10:11
Аватар для psfdek
Профессор
Отправить личное сообщение для psfdek Посмотреть профиль Найти все сообщения от psfdek
 
Регистрация: 14.02.2014
Сообщений: 157

kostyanet,
В localStorage или аяксом в сессию или БД записывать.
Может и сайт весь написать тогда уж сразу?
Можно же просто данные формы передать как массив добавив к именам input'ов [], а там их уже по уникальному полу которое скрытым в таблицу эту вставить так же надо, записывать данные либо в сессию либо в бд.

Последний раз редактировалось psfdek, 17.07.2015 в 10:36.
Ответить с цитированием
  #9 (permalink)  
Старый 17.07.2015, 10:49
Аватар для psfdek
Профессор
Отправить личное сообщение для psfdek Посмотреть профиль Найти все сообщения от psfdek
 
Регистрация: 14.02.2014
Сообщений: 157

blogivan,
<html>
<head>
	<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.1.js"></script>
    <meta charset="utf-8"/>
<style>
table{
background: #FFF7BF;
border-spacing: 0px;
border: 1px solid #f00;
}

table td{
padding: 10px;
border: 1px solid #f00;
}
</style>
</head>
<body>
<table>
<!--Шапка таблицы************************************ **************************-->
<tr>
<td>Наименование работ</td>
<td>Цена за кг.</td>
<td>Колличество кг.</td>
<td>Сумма</td>
</tr>
<!--Шапка таблицы************************************ **************************-->
<tr>
<td>Картофель</td>
<td class="price_kg">
	<span class="value">50</span>
	<input name="price" type="hidden" value="50">
</td>
<td>
	<input class="input_kg" type="text" name="kg">
</td>
<td>
	<span class="dostavka">0</span></td>
</tr><tr>
<td>Картофель</td>
<td class="price_kg">
	<span class="value">30</span>
	<input name="price" type="hidden" value="30">
</td>
<td>
	<input class="input_kg" type="text" name="kg">
</td>
<td>
	<span class="dostavka">0</span></td>
</tr><tr>
<td>Картофель</td>
<td class="price_kg">
	<span class="value">90</span>
	<input name="price" type="hidden" value="90">
</td>
<td>
	<input class="input_kg" type="text" name="kg">
</td>
<td>
	<span class="dostavka">0</span></td>
</tr><tr>
<td>Картофель</td>
<td class="price_kg">
	<span class="value">70</span>
	<input name="price" type="hidden" value="70">
</td>
<td>
	<input class="input_kg" type="text" name="kg">
</td>
<td>
	<span class="dostavka">0</span></td>
</tr>
<!--************************************************** *************************-->
</table>
<div>Общая сумма: <span class="SummAll"></span></div>
<script>
 $('.input_kg').on('keyup',function(){   
	var kg = $(this).val().replace (/\D/gi, '').replace (/^0+/, '');
	$(this).val(kg);
	var priceKg = $(this).closest("tr").find(".price_kg input[name=price]").val();
	var result = Math.round(kg * priceKg);
	var priceKg = $(this).closest("tr").find(".dostavka").text(result);
	$(".SummAll").html(summAll());
 });

function summAll(){ 
	var SummAll = 0;
	$(".dostavka").each(function (i) { 
	  var thisSumm = $(this).text();
	  SummAll = SummAll+(thisSumm*1);

	});
	return SummAll;
}

$(document).ready(function(){
	$("[name=kg]").each(function () { 
		var kg = $(this).val().replace (/\D/gi, '').replace (/^0+/, '');
		$(this).val(kg);
		var priceKg = $(this).closest("tr").find(".price_kg input[name=price]").val();
		var result = Math.round(kg * priceKg);
		var priceKg = $(this).closest("tr").find(".dostavka").text(result);
	});
	$(".SummAll").html(summAll());
});
</script>
</body>
</html>
Ответить с цитированием
  #10 (permalink)  
Старый 17.07.2015, 11:04
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от psfdek
В localStorage или аяксом в сессию или БД записывать.
Что же вы сможете записать? Нет же никаких данных вообще.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Калькулятор с нестандартными свойствами mr__brainwash Javascript под браузер 2 05.05.2014 21:13
Не работает Калькулятор просчета отопления igor700 Общие вопросы Javascript 5 26.02.2014 16:18
Кредитный калькулятор kurya4iy Общие вопросы Javascript 4 11.05.2013 23:09
Сделать калькулятор на сайт. asderru Работа 1 22.07.2010 13:46
Калькулятор работает ТОЛЬКО в ie6 (вопрос ламера) st_sinner Javascript под браузер 3 17.04.2010 18:11