Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.12.2013, 19:31
Новичок на форуме
Отправить личное сообщение для igor.3dviz Посмотреть профиль Найти все сообщения от igor.3dviz
 
Регистрация: 12.12.2013
Сообщений: 9

Не правильный выбор условия
Всем привет!
У меня проблема следующего характера:... делаю калькулятор, и какое бы значение я не вводил в поле Count, переменной cost всегда присваивается 700, и я не пойму в чем проблема.

<script type="text/javascript">


        function calc() {
            

            var is_an = document.getElementById("is_an");

            var count = document.getElementById("count");

            var result = document.getElementById("result"); 

            var price = 0;
            var cost = 0;
                   
          if      (count<50){cost = 1200;}
          else if (count<100){cost = 1110;}
          else if (count<150){cost = 1025;}  
          else if (count<200){cost = 940;}
          else if (count<250){cost = 860;}
          else if (count<300){cost = 780;}
          else               {cost = 700;}
          
          price = parseFloat(count.value)*cost;
          price += (is_an.checked == true) ? price / parseInt(is_an.value) : 0;

          result.innerHTML = price;
        }

</script>


Площадь: <input id="count" onchange="calc()" /><br>

<input type="checkbox" onchange="calc()" value="2" id="is_an" />

<label for="is_an">Авторский надзор</label>

<br/>

<div>
  Стоимость дизайн проекта: 
  
  <span id="result">0
  </span> руб.
</div>
Ответить с цитированием
  #2 (permalink)  
Старый 12.12.2013, 19:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

igor.3dviz,
странно как-то сравнивать элемент с числом
Ответить с цитированием
  #3 (permalink)  
Старый 12.12.2013, 19:42
Новичок на форуме
Отправить личное сообщение для igor.3dviz Посмотреть профиль Найти все сообщения от igor.3dviz
 
Регистрация: 12.12.2013
Сообщений: 9

рони,
спасибо, банальная наверно ошибка, но думаю для дизайнера интерьеров простительна.
Исправил, теперь все нормально считает!)
Ответить с цитированием
  #4 (permalink)  
Старый 13.12.2013, 01:47
Новичок на форуме
Отправить личное сообщение для igor.3dviz Посмотреть профиль Найти все сообщения от igor.3dviz
 
Регистрация: 12.12.2013
Сообщений: 9

снова не могу разобраться в простой ситуации:
не работает выбор коэффициента и последующее действие с ним

<script type="text/javascript">


  function calc() 
  {
    var is_an = document.getElementById("is_an");
    var count = document.getElementById("count");
    var rmc = document.getElementById("rmc");
    var result = document.getElementById("result"); 
    var average ;
    var koef;
    var price;
    var cost;
    

    if      (parseFloat(count.value)<50){cost = 1200;}
    else if (parseFloat(count.value)<100){cost = 1110;}
    else if (parseFloat(count.value)<150){cost = 1025;}  
    else if (parseFloat(count.value)<200){cost = 940;}
    else if (parseFloat(count.value)<250){cost = 860;}
    else if (parseFloat(count.value)<300){cost = 780;}
    else               {cost = 700;}
   
    
    average = parseFloat(count.value) / parseInt(rmc.value);
      
    price = parseFloat(count.value)*cost;
    
    //коэф повышения/нижения цены относительно количества помещений
  
    if ( average < 10)           {koef = 1.1; }
    else if ( 10 <= average <=25){koef = 1;   }
    else if (26 <= average <= 40){koef = 0.92;}
    else if (41 <= average <= 60){koef = 0.84;}
    else if (61 <= average <= 80){koef = 0.76;}
    else                         {koef = 0.68;}
	
    if (rmc == ""){}
    else {price = price * koef;}

    //прибавляем авторский надзор
    price += (is_an.checked == true) ? price / parseInt(is_an.value) : 0;
    
    //вывод результата
    result.innerHTML = price;
  }

</script>
        
Площадь: <input id="count" onchange="calc()" /><br>
Кол-во помещений: <input id="rmc" onchange="calc()" /><br>

<input type="checkbox" onchange="calc()" value="2" id="is_an" />

<label for="is_an">Авторский надзор</label>

<br/>

<div>
  Стоимость дизайн проекта: 
  
  <span id="result">0
  </span> руб.
 
</div>
Ответить с цитированием
  #5 (permalink)  
Старый 13.12.2013, 02:51
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от igor.3dviz
    if      (parseFloat(count.value)<50){cost = 1200;}
    else if (parseFloat(count.value)<100){cost = 1110;}
    else if (parseFloat(count.value)<150){cost = 1025;} 
    else if (parseFloat(count.value)<200){cost = 940;}
    else if (parseFloat(count.value)<250){cost = 860;}
    else if (parseFloat(count.value)<300){cost = 780;}
    else               {cost = 700;}
Ха ха, и вправду видимо дизайнер, раз так код отформатировал ))
Сообщение от igor.3dviz
(is_an.checked == true)
Не надо сравнивать логическое значение с true или false. Оно ведь и так уже логическое.

Ты задаешь вопрос: "чекбокс отмечен - это правда?" ( checkbox.checked == true ? )
Хотя можно просто задать вопрос: "чекбокс отмечен?" ( checkbox.checked ? )

Так что оставляй просто is_an.checked
__________________
В личку только с интересными предложениями

Последний раз редактировалось danik.js, 13.12.2013 в 02:53.
Ответить с цитированием
  #6 (permalink)  
Старый 13.12.2013, 09:52
Новичок на форуме
Отправить личное сообщение для igor.3dviz Посмотреть профиль Найти все сообщения от igor.3dviz
 
Регистрация: 12.12.2013
Сообщений: 9

danik.js, а это часть, как ни странно, работает . к сумме прибавляется то, что надо.
эта часть не работает:

31 if ( average < 10) {koef = 1.1; }
32 else if ( 10 <= average <=25){koef = 1; }
33 else if (26 <= average <= 40){koef = 0.92;}
34 else if (41 <= average <= 60){koef = 0.84;}
35 else if (61 <= average <= 80){koef = 0.76;}
36 else {koef = 0.68;}
37
38 if (rmc == ""){}
39 else {price = price * koef;}
Ответить с цитированием
  #7 (permalink)  
Старый 13.12.2013, 10:17
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Не знаю, вбиваю циферки - что-то там считает, отмечаю галочку - цена меняется. Что не так то? Ты можешь нормально описать проблему, или нам тебя уговаривать?
<script type="text/javascript">
 
 
  function calc()
  {
    var is_an = document.getElementById("is_an");
    var count = document.getElementById("count");
    var rmc = document.getElementById("rmc");
    var result = document.getElementById("result");
    var average ;
    var koef;
    var price;
    var cost;
     
 
    if      (parseFloat(count.value)<50){cost = 1200;}
    else if (parseFloat(count.value)<100){cost = 1110;}
    else if (parseFloat(count.value)<150){cost = 1025;} 
    else if (parseFloat(count.value)<200){cost = 940;}
    else if (parseFloat(count.value)<250){cost = 860;}
    else if (parseFloat(count.value)<300){cost = 780;}
    else               {cost = 700;}
    
     
    average = parseFloat(count.value) / parseInt(rmc.value);
       
    price = parseFloat(count.value)*cost;
     
    //коэф повышения/нижения цены относительно количества помещений
   
    if ( average < 10)           {koef = 1.1; }
    else if ( 10 <= average <=25){koef = 1;   }
    else if (26 <= average <= 40){koef = 0.92;}
    else if (41 <= average <= 60){koef = 0.84;}
    else if (61 <= average <= 80){koef = 0.76;}
    else                         {koef = 0.68;}
     
    if (rmc == ""){}
    else {price = price * koef;}
 
    //прибавляем авторский надзор
    price += (is_an.checked == true) ? price / parseInt(is_an.value) : 0;
     
    //вывод результата
    result.innerHTML = price;
  }
 
</script>
         
Площадь: <input id="count" onchange="calc()" /><br>
Кол-во помещений: <input id="rmc" onchange="calc()" /><br>
 
<input type="checkbox" onchange="calc()" value="2" id="is_an" />
 
<label for="is_an">Авторский надзор</label>
 
<br/>
 
<div>
  Стоимость дизайн проекта:
   
  <span id="result">0
  </span> руб.
  
</div>
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #8 (permalink)  
Старый 13.12.2013, 10:22
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от igor.3dviz
if (rmc == ""){}
То есть ты сравниваешь DOM-объект с пустой строкой? И какого результата ты ждешь?
Сообщение от igor.3dviz
спасибо, банальная наверно ошибка, но думаю для дизайнера интерьеров простительна.
Ага. Но вот во второй раз нет. Только расстрел.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #9 (permalink)  
Старый 13.12.2013, 10:33
Новичок на форуме
Отправить личное сообщение для igor.3dviz Посмотреть профиль Найти все сообщения от igor.3dviz
 
Регистрация: 12.12.2013
Сообщений: 9

danik.js, цена считается первый раз, если ставим галку, то прибавляется еще половина суммы, а если ввод количество помещений, то сумма первоначальная(еще до прибавления галки) должна умножиться на коэф, который как раз в этой части находится.

if (rmc == ""){} - тут я по разному пробовал, исключая свою первую ошибку, яж не совсем дурак и гугли как нужно определять пустая строка или нет. Нашел что таким образом.
Ответить с цитированием
  #10 (permalink)  
Старый 13.12.2013, 10:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Сообщение от igor.3dviz
if ( 10 <= average <=25)
if ( 10 <= average && average<=25)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выбор всех Select kvaleksandr Элементы интерфейса 12 27.10.2012 20:55
select + выбор с отображением сразу it_tech Элементы интерфейса 3 26.06.2012 19:52
Выбор из таблицы HOmevl Общие вопросы Javascript 4 15.09.2011 01:40
Выбор тегов на странице. unsiker jQuery 1 21.01.2011 19:07
Выбор фреймворка маина Библиотеки/Тулкиты/Фреймворки 12 14.03.2009 22:21