Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Калькулятор расчета доставки (https://javascript.ru/forum/events/64040-kalkulyator-rascheta-dostavki.html)

рони 19.07.2016 00:08

qumo,
<!DOCTYPE html>

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

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script>
$(function() {
    var res = document.getElementById("answer"),
        price = {
            "ems": 2200,
            "avia": 2500,
            "sal": 2700,
            "parohod": 1800
        };
    res.innerHTML = price["ems"];

    function question() {
        var method = $(".find").val();
        var weight = +$("#weight").val()||0;
        var sum = price[method];
        switch (method) {
            case "ems":
                for (var i = 50; i < weight * 100; i++) sum += i < 100 ? 20 : 18;
                break;
            case "avia":
                break;
            case "sal":
                break;
            case "parohod":
                break
        };
        res.innerHTML = sum
    }
    $("#weight").on("change", question);
    $(".find").on("change", question)
});

  </script>
</head>

<body>
<select name="method" class="find" >
  <option value="ems">ЕМS</option>
  <option value="avia">Авиа</option>
  <option value="sal">SAL</option>
  <option value="parohod">Пароход</option>
</select>

<input type="number" value="0.5" min="0.5" step="0.01" max="2" name="weight" id="weight" size="4" >

<hr><span id="answer"></span> руб


</body>
</html>

qumo 19.07.2016 00:19

Спасибо за помощь!=) Да, так отлично, но
for (var i = 50; i < weight * 100; i++) sum += i < 100 ? 20 : 18;

тут только 20 и 18, а у меня еще будет и 16, и 14, и ниже=))

рони 19.07.2016 00:48

Цитата:

Сообщение от qumo
а у меня еще будет и 16, и 14, и ниже

и в чём проблема?

qumo 19.07.2016 18:09

т.е. также for'ом?:-?

рони 19.07.2016 18:22

Цитата:

Сообщение от qumo
у меня еще будет и 16, и 14,

Цитата:

Василий Ивановач:
-Петька,приборы!
Петька:
-300!
Василий Иванович:
-Что 300?
Петька:
-А что приборы?
:cray:

qumo 19.07.2016 19:33

Я имел ввиду прибавление к sum += 16; sum += 14 и т.д. Их так же делать for'ом?

рони 19.07.2016 19:43

Цитата:

Сообщение от qumo
Я имел ввиду прибавление к sum += 16; sum += 14 и т.д. Их так же делать for'ом?

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

рони 19.07.2016 20:42

qumo,
пока вы играите в партизана на допросе, поиграю в телепата
for (var i = 50; i < weight * 100; i++) sum += i < 100 ? 20 : i < 200 ? 18 : i < 300 ?  16 : 14;

qumo 19.07.2016 20:48

sum +=16 - if(weight > 2 && weight <=6)
sum +=14 - if(weight > 6 && weight <=30)

qumo 19.07.2016 20:53

Да, Роник, благодарю тебя! Блин, огромное спасибо!!!=) Что б тебе в жизни удача всегда улыбалась!=)
Вот так:
for (var i = 50; i < weight * 100; i++) sum += i < 100 ? 20 : i < 200 ? 18 : i < 600 ?  16 : 13;


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