Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   JS при выборе определнных option расчитывается разная формула (https://javascript.ru/forum/misc/46714-js-pri-vybore-opredelnnykh-option-raschityvaetsya-raznaya-formula.html)

Psy Diamond 20.04.2014 17:54

JS при выборе определнных option расчитывается разная формула
 
не судите строго и не бейте :) я в JS новичок и толь-только разбираюсь...
При выборе определенного выпадающего списка - идет расчет разный.
вот примерный HTML:
...
<div>
<select id="type"><option value="1"></option>
<option value="2">Белый</option>
<option value="3">Серый</option>
<option value="4">Желтый</option>
<option value="5">Ораньжевый</option>
<option value="6">Синий</option>
<option value="7">Черный</option>
</select>
</div>

<div>
<input id="kol-vo" onkeypress="return isNumberKey(event)" type="text" />
</div>
...

вот предполагаемый JS:
...
ph=document.getElementById('kol-vo').value;
/*дальше застопорился*/
...


в идеале должно на словах получиться так: для, допустим, белого, серого и желтого цена 500Р на кол-во введенного пользователем, для Оранжевого, Синего и Черного - 700Р на кол-во введеного пользователем... как это записать в формулу типа такой: 1gr=ph*500, 2gr=ph*700 - как сгруппировать списки во-что-нибудь... или обусловить.... или если не сгруппировать то вообще как сделать хоть по одному значению, чтоли.... я в тупике.... пробовал через objSel.options[0] - для каждого из списка, не выходит что-то, помогите пожалуйста :help: .

nice_try 20.04.2014 18:25

Цитата:

Сообщение от Psy Diamond (Сообщение 308523)
ph=document.getElementById('kol-vo').value;

что ты пытаешься получить данной выборкой?

Psy Diamond 20.04.2014 18:40

Цитата:

Сообщение от nice_try (Сообщение 308524)
что ты пытаешься получить данной выборкой?

...записать в переменную то что введет пользователь...
...я не прошу готовый код... хотябы подскажите через что это решение можно реализовать - я сам додумать попробую

nice_try 20.04.2014 18:48

как вариант ты можешь хранить в массив, ключи которого соответствуют value option твоего селекта, а значения и есть сами ценники, либой суй в атрибуты option ценник и потом извлекай и делай вычисления

рони 20.04.2014 19:24

Psy Diamond,
:-?
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
<div>
<select id="sel" onchange="foo()"><option value="1"></option>
<option value="2">Белый</option>
<option value="3">Серый</option>
<option value="4">Желтый</option>
<option value="5">Ораньжевый</option>
<option value="6">Синий</option>
<option value="7">Черный</option>
</select>
</div>
<div>
<input id="kol-vo" oninput="foo()" type="text" value="0" />
</div>
<div id="result">0</div>
<script>
  var ratio = {1:0,2:500,3:500,4:500,5:700,6:700,7:700};
  function foo()
  {
    var num = +document.getElementById('kol-vo').value||0,
    indx = +document.getElementById('sel').value;
    document.getElementById('result').innerHTML = num * ratio[indx]
  }
</script>
</body>

</html>

Psy Diamond 20.04.2014 20:28

рони. спасибо :) пока думал пришел к своему решению:
...
ph=document.getElementById('kol-vo').value;
value=document.getElementById('kol-vo').value-1;
	if(value>=4) mat=ph*700;
	if(value<=3) mat=ph*500;
...

Psy Diamond 20.04.2014 20:32

простите ошибся... :p
ph=document.getElementById('kol-vo').value;
value=document.getElementById('type').value-1;
	    if(value>=4) mat=ph*700;
	    if(value<=3) mat=ph*500;

Psy Diamond 20.04.2014 20:44

отказался от массива - т.к. слишком громоздко... в рабочем коде у меня список из 22 позиций и возможно будет больше..... слишком много прописывать :)

depp 22.04.2014 16:48

не легче сделать так:
название цвета --- объявленная цена --- инпут с кол-вом
----//----
----//----
и пользователь вводит просто нужно кол-во напротив нужных ему цветов. дальше просто собираешь данные со всех инпутов с кол-вом.


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