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, время: 03:04. |