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: . |
Цитата:
|
Цитата:
...я не прошу готовый код... хотябы подскажите через что это решение можно реализовать - я сам додумать попробую |
как вариант ты можешь хранить в массив, ключи которого соответствуют value option твоего селекта, а значения и есть сами ценники, либой суй в атрибуты option ценник и потом извлекай и делай вычисления
|
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>
|
рони. спасибо :) пока думал пришел к своему решению:
...
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;
...
|
простите ошибся... :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;
|
отказался от массива - т.к. слишком громоздко... в рабочем коде у меня список из 22 позиций и возможно будет больше..... слишком много прописывать :)
|
не легче сделать так:
название цвета --- объявленная цена --- инпут с кол-вом ----//---- ----//---- и пользователь вводит просто нужно кол-во напротив нужных ему цветов. дальше просто собираешь данные со всех инпутов с кол-вом. |
| Часовой пояс GMT +3, время: 20:20. |