Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Калькулятор стоимости (https://javascript.ru/forum/misc/49953-kalkulyator-stoimosti.html)

GonzoT 05.09.2014 00:27

Калькулятор стоимости
 
Здравствуй, Уважаемый! :thanks:
Прошу помощи в решении нелегкой задачи создания калькулятора с помощью javascript, jquery или даже angular.js :) Для более детального пояснения задачи прикладываю jpg, чтобы наглядно объяснить, чего пытаюсь добиться.

Подскажите, пожалуйста, методы решения следующей задачи:

Хочу создать калькулятор, где input'ы будут зависимы друг от друга, и в зависимости от их значений будет выполняться расчет стоимости. Я уже замучился в поиске решений или похожих примеров, для решения моей задачи - всё безуспешно :help:



1. Первая часть состоит из 4-х форм (x, y, z и суммы), где значения y и z меняются в зависимости от нажатия на 1, 2, 3. Значение x заполняется вручную. Сумма считается посредством умножения x, y, z.

2. Вторая часть состоит из 6-и форм (A,B,C,D,E,F), где значение A берется из y (или так же, как и y, при нажатии на 1,2,3). Форма B заполняется вручную с клавиатуры. Значение C берет уже заполненное значение B и прибавляет 5%. Форма E берет уже посчитанное значение C и умножает на y (которое уже определено в п.1). Значение F вводится вручную с клавиатуры. Форма D показывает результат F деленное на A.

3. Третья часть состоит из объединения п.1 и п.2, т.е. общего результата проделанного расчета. Эти последние 9 форм могут быть простыми неактивными input'ами или span'ами.
Форма I берет уже посчитанное значение C. Форма L берет уже посчитанное значение E. А форма O умножает посчитанное E на D.
Форма H берет введенное значение B. Форма K берет введенное значение B и умножает на A (либо y), затем плюсует сумму. Форма N берет посчитанное значение K и умножает на посчитанное ранее D.
Форма G выдает результат вычитания I - H, форма J вычитание L - K, ну а M O - N.

На практике можно обойтись без A,H,I,L, потому что они всё равно дублируют значения указанные ранее. В jpg файле оранжевые поля означают, что ввод в них производится с клавиатуры. Форма C оранжевого цвета так же означает, что она может быть изменена, но не повлияет на B, а только лишь на E и OL, когда будет туда передаваться).

Вот я и ломаю голову, как всё это связать вместе. Ведь иерархия вычислений прослеживается, а как брать результат из вычислимого input'а не понимаю :-?

Подскажите, пожалуйста, метод создания такой формы или похожий пример, где можно было бы подсмотреть похожую реализацию. Буду безгранично благодарен!!!

Tek 05.09.2014 09:06

Сам код не приведу, но подскажу, для таких вещей существует метапрограммирование - вот замечательная статься на хабре

ksa 05.09.2014 09:46

Цитата:

Сообщение от Tek
Сам код не приведу, но подскажу

Сам я Павла не видал... (с) :D

ksa 05.09.2014 09:48

GonzoT, тебе явно в раздел "Работа"... Если дашь премлемую оплату, тебе таки сделают калькулятор.

GonzoT 05.09.2014 20:39

Tek, благодарю за ответ и ссылку!!! Обязательно прочту сегодня :thanks:

Ksa я бы не писал на форум, если бы мог заказать эту услугу, но спасибо за ответ в любом случае :yes:

К тому же мне интересно реализовать такую штуку самому, только вот методов и примеров не нахожу :-? Может статья хоть осенит!)

Rise 07.09.2014 15:10

GonzoT, первая часть:
<form name="f" style="text-align:center">
	<input type="radio" name="r" value="10,20">
	<input type="radio" name="r" value="30,40">
	<input type="radio" name="r" value="50,60"><br>
	<input type="text" name="x" value="0">
	<input type="text" name="y" value="0" readonly>
	<input type="text" name="z" value="0" readonly><br>
	<input type="text" name="sum" value="0" readonly>
</form>
<script>
document.f.onclick = document.f.onkeyup = function(){
	for (var i = 0; i < this.r.length; i++) {
		if (this.r[i].checked) {
			var v = this.r[i].value.split(',');
			this.y.value = v[0];
			this.z.value = v[1];
			break;
		}
	}
	this.sum.value = this.x.value * this.y.value * this.z.value;
};
</script>

Остальное сам :p

GonzoT 07.09.2014 19:46

Rise, спасибо тебе большое!!! :) Буду применять! :victory:

Tek, я прочел статью, но подходящих примеров не нашел :( За-то узнал кое что новое)

Игорь1111111111 08.09.2014 17:13

нужна помощь: нужно вставить в html след.калькулятор (хотя он даже не считает, а просто выводит данные):
из раскрывающегося списка выбор трех пунктов. (как бы 3 таблицы)
сами таблицы имеют вид:

буква/число 1 2 3
а а1 а2 а3
б б1 б2 б3
в в1 в2 в3

нужен такой скрипт, чтоб в нем работало следующее:
"если выбран пункт1 и буква=от а до б и числа=1, то вывести в окне значение 2%"
"если выбран пункт1 и буква=от б до в и числа=3, то вывести в окне значение 6%"
...и т.д.
нужен полностью скрипт чтоб сразу вставить в html. есть гении, помогите плиииз?

tsigel 08.09.2014 17:14

Игорь1111111111,
Вы просите готовый скрипт с нуля.

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

Если вы все же хотите, чтобы вам помогли - приложите какие-то усилия сами и задавайте вопросы по ходу дела.

Игорь1111111111 08.09.2014 18:13

нужна хотя бы основная строчка с условием "ЕСЛИ" и как вывести результат


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