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

рони 18.07.2016 18:37

qumo,
а куда делось от 1 до 1.25 и каким образом изменился шаг с 0.1 до 0.01 -- эти чудеса как-то разъяснить треба?!

qumo 18.07.2016 18:42

Цитата:

Сообщение от рони (Сообщение 422465)
qumo,
а куда делось от 1 до 1.25 и каким образом изменился шаг с 0.1 до 0.01 -- эти чудеса как-то разъяснить треба?!

Это я изменил. Извиняюсь, что не предупредил об изменениях:-? :( это требуется для точности при вводе, чтобы было до сотых - за каждый грамм=)

рони 18.07.2016 19:09

Цитата:

Сообщение от qumo
Это я изменил.

а что и как вы изменили?пока ни ваши обяснения, ни код, не о чём не говорят.

qumo 18.07.2016 20:10

$(function() {
    var price = document.getElementById('answer'),
    ems_price = 2200;
    avia_price = 2500;
    sal_price = 2700;
    parohod_price = 1800;
    price.innerHTML = ems_price;
				
    function question() {
      var method = $('.find').val();
      switch(method) {
	case 'ems':
	var weight = +$('#weight').val();
	var sum = ems_price;
	if(weight >= 0.5 && weight <= 1){ // было weight => 0.5
	  for (var i= 50; i< weight*100; i++)  { //было var i = 5 и weight * 10
            sum += 20; // было sum += 200
	  };
	  price.innerHTML = sum;
        };
        if(weight >= 1.25 && weight <= 2){ //Добавил
          for (var i = 125; i< weight * 100; i++)  {
            sum += 24;
          };
          price.innerHTML = sum;
        }; //Конец добавленного
      break;
      case 'avia':
        price.innerHTML = avia_price;
      break;
      case 'sal':
        price.innerHTML = sal_price;
      break;
      case 'parohod':
        price.innerHTML = parohod_price;
      break;
    }
  }
  $('#weight').on("change", question);
  $('.find').on("change", question);
});

рони 18.07.2016 20:13

qumo,
вопрос тот же где пропавший диапазон и строку 19 выкинуть , а строку 25 перенести в конец 26.

qumo 18.07.2016 20:37

Цитата:

Сообщение от рони (Сообщение 422482)
qumo,
вопрос тот же где пропавший диапазон и строку 19 выкинуть , а строку 25 перенести в конец 26.

Я довел до сотых, вместо десятых. от 0.5 по шагу в 0.01 до 1кг = 50 шагов. Это от 2200 до 3200, отсюда: 3200-2200=1000. Далее 1000/50=20. 20 и есть сумма из 200, но уже не на каждых 100 грамм, а на каждый 1грамм=) во втором случае: от 1.25 до 2кг = 75 шагов=) Это от 3200 до 5000. Тут такой же расчет=) Но тут у меня sum сбрасывается до 2200 во втором цикле, когда weight >= 1.01, на 1.25 начинает прибавлять к 2200, как и должно быть. Я предполагаю, что это из-за того диапазона, который между 1 и 1.25, он как бы блуждающий, не?=)

qumo 18.07.2016 20:56

ой, видимо, вы про него и говорили - "пропавший диапазон", да?=)))

рони 18.07.2016 21:33

qumo,
$(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();
        var sum = price[method];
        switch (method) {
            case "ems":
                if (weight >= .5 && weight <= 1)
                    for (var i = 50; i < weight * 100; i++) sum += 20;
                else if (weight > 1 && weight < 1.25){ /* где? */ }     
                else if (weight >= 1.25 && weight <= 2)
                    for (var i = 125; i < weight * 100; i++) sum += 24;
                break;
            case "avia":
                break;
            case "sal":
                break;
            case "parohod":
                break
        }
        res.innerHTML = sum
    }
    $("#weight").on("change", question);
    $(".find").on("change", question)
});

qumo 18.07.2016 22:53

значит я правильно понял вас:)

qumo 19.07.2016 00:05

берет после 1.01 с 2200, а не с 3200=((
$(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();
				  var sum = price[method];
				  switch(method) {
					case 'ems':
					  if (weight >= .5 && weight <= 1){
						for (var i = 50; i < weight * 100; i++) {sum += 20;}
					  }
					  else if (weight > 1 && weight <= 2){
						for (var i = 100; i < weight * 100; i++) {sum += 18;}
					  }
					break;
					
					case 'avia':
					  price.innerHTML = avia_price;
					break;
					
					case 'sal':
					  price.innerHTML = sal_price;
					break;
					
					case 'parohod':
					  price.innerHTML = parohod_price;
					break;
				  }
				  res.innerHTML = sum
				}
				$('#weight').on("change", question);
				$(".find").on("change", question);
			  });


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