Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Доработка калькулятора товара (https://javascript.ru/forum/misc/55669-dorabotka-kalkulyatora-tovara.html)

metlick 08.05.2015 22:31

Доработка калькулятора товара
 
Помогите пожалуйста переделать калькулятор. Сейчас он принимает количество товара и выдает цену. Как доработать чтобы и при вводе цены выдавало количество?
<script type="text/javascript" src="js/calc.js"></script><BR>
<tr><td style="padding-right:10px;">Наименование</td><td>
<select name="b" id="field2" onchange="recalc()" style="width:150">
<option value="0" selected="selected">Выбрать...</option>
<option value="130">Rang 1</option><option value="35">Rang 2</option></select></td></tr>
 <tr><td style="padding-right:10px;">Количество:</td>
<input type=text id="field1" onKeyUp=recalc() value=0>    
<td style="padding-right:10px;">Сумма к оплате с учетом скидки:</td><BR>    <td>width=30%><span id="fieldRes">0</span></td><td style="padding-right:10px;">руб.</td></tr>
</table>


function price_format(o) {
    return Number(o).toFixed(1);
}    
    function recalc(){
var sum = price_format(parseFloat(document.getElementById('field1').value) * parseFloat(document.getElementById('field2').value));
var kol = price_format(parseFloat(document.getElementById('field1').value));
switch (true) {
        case kol > 0 && kol <= 99 && sum < 1000: document.getElementById('fieldRes').innerHTML = sum;
    break;
	  case kol > 0 && kol <= 99 && sum > 1000 && sum < 10000000: document.getElementById('fieldRes').innerHTML = sum - (sum * 5 / 100);
    break;
        case kol > 99 && kol <= 500000: document.getElementById('fieldRes').innerHTML = sum - (sum * 5 / 100);
    break;
    }}

ksa 12.05.2015 08:57

Цитата:

Сообщение от metlick
Как доработать чтобы и при вводе цены выдавало количество?

Отлавливать изменение цены... Производить аналогичные действия...

metlick 12.05.2015 17:19

Цитата:

Сообщение от ksa (Сообщение 370365)
Отлавливать изменение цены... Производить аналогичные действия...

Ну вот что смог и конечно же не работает.

<script>
function price_format(o) {
    return Number(o).toFixed(1);}

function recalc()     {
     var kol = price_format(parseFloat(document.getElementById('field1').value));
     orsum = price_format(parseFloat(document.getElementById('fieldRes').value));
     var sum = kol * parseFloat(document.getElementById('field2').value));
     var orkol = orsum / price_format(parseFloat(document.getElementById('field2').value));
    
   document.getElementById('field1').innerHTML = orkol;
     switch (true) {
        case kol > 0 && kol <= 199: document.getElementById('fieldRes').innerHTML = sum;
    break;
        case kol > 99: document.getElementById('fieldRes').innerHTML = sum - (sum * 5 / 100);
    break;    }}
</script>


<script type="text/javascript" src="js/calc.js"></script><BR>
<tr><td style="padding-right:10px;">Наименование</td><td>
<select name="b" id="field2" onchange="recalc()" style="width:150">
<option value="0" selected="selected">Выбрать...</option>
<option value="130">Rang 1</option><option value="35">Rang 2</option></select></td></tr>
 <tr><td style="padding-right:10px;">Количество:</td>
<input type=text id="field1" onKeyUp=recalc() value=0>    
<td style="padding-right:10px;">Сумма к оплате с учетом скидки:</td><BR><input type= "text" id="fieldRes" onKeyUp=recalc() value=0> <BR>style="padding-right:10px;">руб.</td></tr>
</table>

ksa 13.05.2015 08:27

Цитата:

Сообщение от metlick
Ну вот что смог и конечно же не работает.

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

metlick 13.05.2015 12:46

Ясно все с вами. Я попросил о помощи и скинул то что смог сделать. Вы сказали что это г..но в котором вы не можете разобратся хотя там всего то 15 строк и попросту послали. Спасибо добрый человек, удачи вам.

laimas 13.05.2015 13:26

Как доработать чтобы и при вводе цены выдавало количество?

И что это означает - зная цену за единицу товара, набирать цену произвольную, получая сколько товара выйдет на выбранную сумму?

ksa 13.05.2015 13:47

Цитата:

Сообщение от metlick
Спасибо добрый человек, удачи вам.

Заходи еще... :lol:

metlick 13.05.2015 17:28

Цитата:

Сообщение от laimas (Сообщение 370535)
И что это означает - зная цену за единицу товара, набирать цену произвольную, получая сколько товара выйдет на выбранную сумму?

Да

laimas 13.05.2015 17:33

И зачем это? Например, торговля бубликами и при наборе суммы могут получиться значения 0.15 бублика или 1.25, и это будет нормально?

metlick 13.05.2015 17:48

Цитата:

Сообщение от ksa (Сообщение 370540)
Заходи еще... :lol:

Цитата:

говнюшок
Опускаетесь до оскорблений? Низко. Мне вас искренне жаль.


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