Показать сообщение отдельно
  #1 (permalink)  
Старый 07.04.2014, 12:12
Интересующийся
Отправить личное сообщение для xavibeat Посмотреть профиль Найти все сообщения от xavibeat
 
Регистрация: 07.04.2014
Сообщений: 13

Калькулятор натяжных потолков, редактирование
Добрый день, изучаю JS, написал небольшой калькулятор
<script type="text/javascript">
    function calculate() {
        var price = 0;
        var price1 = 0;
        var room_length = document.calc.room_length.value;
        var room_width = document.calc.room_width.value;
        var tubes_quantity = document.calc.tubes_quantity.value;
        var lightpoints_quantity = document.calc.lightpoints_quantity.value;
        var angles_quantity = document.calc.angles_quantity.value;
        var svetilnik_quantity = document.calc.svetilnik_quantity.value;
        
        if (room_length > 0 && room_width > 0) {
            document.getElementById('roof_size').innerText = room_length * room_width;
            document.getElementById('roof_perimeter').innerText = 2 * room_length + 2 * room_width;
            if (13 >= document.getElementById('roof_size').innerText)
                price = room_length * room_width * 290 + (2 * room_length + 2 * room_width) * 40 + tubes_quantity * 200 + lightpoints_quantity * 300;
        }
        else
            document.getElementById('roof_size').innerText = "0";
  
         document.getElementById('price').innerText = price + "руб.";
        return true;
  
  if (room_length > 0 && room_width > 0) {
            document.getElementById('roof_size').innerText = room_length * room_width;
            document.getElementById('roof_perimeter').innerText = 2 * room_length + 2 * room_width;
            if (20 >= document.getElementById('roof_size').innerText >= 13)
                price1 = room_length * room_width * 280 + (2 * room_length + 2 * room_width) * 40 + tubes_quantity * 200 + lightpoints_quantity * 300;
        }
        else
            document.getElementById('roof_size').innerText = "0";
  
         document.getElementById('price').innerText = price + "руб.";
        return true;
            
}
</script>
<form name="calc">
    <table>
    <tr>
        <td>Длина комнаты, м:</td>
        <td><input size="10" name="room_length" onkeypress="check_digits()" onkeyup="calculate();" /></td>
    </tr>
    <tr>
        <td>Ширина комнаты, м:</td>
        <td><input size="10" name="room_width" onkeypress="check_digits()" onkeyup="calculate();" value="" /></td>
    </tr>
    <tr>
        <td>Кол-во труб:</td>
        <td><input size="10" name="tubes_quantity" onkeypress="check_digits()" onkeyup="calculate();" value="" /></td>
    </tr>
    <tr>
        <td>Кол-во люстр:</td>
        <td><input size="10" name="lightpoints_quantity" onkeypress="check_digits()" onkeyup="calculate();" value="" /></td>
    </tr>
    <tr>
        <td>Кол-во светильников:</td>
        <td><input size="10" name="svetilnik_quantity" onkeypress="check_digits()" onkeyup="calculate();" value="" /></td>
    </tr>  
    <tr style="display:none;">
        <td>Кол-во углов в комнате:</td>
        <td><input size="10" name="angles_quantity" onkeypress="check_digits()" onkeyup="calculate();" value="4" /></td>
    </tr>
    <tr>
        <td>Площадь потолка:</td>
        <td><span id="roof_size"></span> м<sup>2</sup></td>
    </tr>
    <tr>
        <td>Периметр потолка:</td>
        <td><span id="roof_perimeter"></span> м</td>
    </tr>
    <tr>
        <td>Примерная стоимость потолка:</td>
        <td><span id="price1"></span></td>
    </tr>
    </table>
</form>


Встала необходимость добавить условия, такие как:
1. Если площадь от 1 до 13 кв.м. то считаем по 290, от 14 до 20 кв.м. 280 р/м, от 20 до 40 кв.м. = 260 р./м, от 40 и выше = 240 р./м
2. Если кол-во светильников от 1 до 10 то считаем по 290, свыше 10 по 250.

С помощью какие операторов можно выполнить, склоняюсь к if else, не слишком ли много их будет? не повредит ли это?
Ответить с цитированием