Не правильный выбор условия
Всем привет!
У меня проблема следующего характера:... делаю калькулятор, и какое бы значение я не вводил в поле 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, время: 21:44. |