Не правильный выбор условия
Всем привет!
У меня проблема следующего характера:... делаю калькулятор, и какое бы значение я не вводил в поле 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> |
igor.3dviz,
странно как-то сравнивать элемент с числом :cray: |
рони,
спасибо, банальная наверно ошибка, но думаю для дизайнера интерьеров простительна. Исправил, теперь все нормально считает!) |
снова не могу разобраться в простой ситуации:
не работает выбор коэффициента и последующее действие с ним :help: <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> |
Цитата:
Цитата:
Ты задаешь вопрос: "чекбокс отмечен - это правда?" ( checkbox.checked == true ? ) Хотя можно просто задать вопрос: "чекбокс отмечен?" ( checkbox.checked ? ) Так что оставляй просто is_an.checked |
danik.js, а это часть, как ни странно, работает :D. к сумме прибавляется то, что надо.
эта часть не работает: 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;} |
Не знаю, вбиваю циферки - что-то там считает, отмечаю галочку - цена меняется. Что не так то? Ты можешь нормально описать проблему, или нам тебя уговаривать?
<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> |
Цитата:
Цитата:
|
danik.js, цена считается первый раз, если ставим галку, то прибавляется еще половина суммы, а если ввод количество помещений, то сумма первоначальная(еще до прибавления галки) должна умножиться на коэф, который как раз в этой части находится.
if (rmc == ""){} - тут я по разному пробовал, исключая свою первую ошибку, яж не совсем дурак :D и гугли как нужно определять пустая строка или нет. Нашел что таким образом. |
Цитата:
if ( 10 <= average && average<=25) |
Часовой пояс GMT +3, время: 01:07. |