Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Калькулятор Неправильно считает (https://javascript.ru/forum/misc/35201-kalkulyator-nepravilno-schitaet.html)

Jereme 03.02.2013 14:27

Калькулятор Неправильно считает
 
Здравствуйте, помогите разобраться в калькуляторе. Неправильно считает.

Нужно чтоб считал формулой

(Название кухни * Высота верхних шкафов) + (Количество метров*Багет) + подсветка + (Стеновая панель*Количество метров кухни)+Духовой шкаф+Варочная панель+Вытяжка+Посудомоечн ая машина+Стиральная машина


<html>
<body>
<script>

/*функция, отображающая результат на странице */
function changeResult(result){
  document.getElementById('result').innerHTML = result;
}

/*функция, проводящая непосредственно вычисления */
function calculateForm(){

  var baget=(document.getElementById('baget').checked?"5000":"0");
  var podsvetka=(document.getElementById('podsvetka').checked?"2000":"1");


  var result = ((document.getElementById('nazv_kuhni').value*document.getElementById('visota_shkaf').value)
  +(document.getElementById('kol_metr').value*document.getElementById('visota_shkaf').value*1)
  +(document.getElementById('kol_metr').value*baget)
  +(document.getElementById('sten_pan').value*document.getElementById('kol_metr').value)
  +document.getElementById('duh_shkaf').value*1
  +document.getElementById('var_panel').value*1
  +document.getElementById('vit').value*1
  +document.getElementById('posud_mash').value*1
  +document.getElementById('stir_mash').value*1
  );

  changeResult(result);
  
  }
</script>
</head><body>



<div id="pagecontent">



<!-- форма -->
<form name="calculator" method="post" >

<table>
<div>
<tr>
<td><div class="name_1">Название кухни:</div></td>

<!-- Первый список -->
 <td> <select name="nazv_kuhni" id="nazv_kuhni" >
    <option value="12852" >Софтформинг тераа</option>
    <option value="12036" >Кухня с фасадами из ДСП</option>
    <option value="17000" >ПОСТФОРМИНГ</option>
	<option value="18904" >АКРИЛ</option>
	<option value="17204" >РЕТРО (МДФ с патиной)</option>
	<option value="17952" >АЛЬФА</option>
	<option value="20604" >ПАРИЖ</option>
	<option value="20604" >ЛОНДОН</option>
	<option value="18700" >Эмаль</option>
	<option value="21896" >Эмаль глянец</option>
	<option value="14960" >МДФ</option>
	<option value="15980" >ТЕХНО 1</option>
	<option value="17952" >МРАСЕЛЬ</option>
	<option value="17952" >ТЕХНО 5</option>
	<option value="18904" >ТУРИН</option>
	<option value="20468" >СОФИЯ</option>
	<option value="20196" >ТАФЕЛЬ ШПОН</option>
	<option value="27472" >ТАФЕЛЬ ШПОН ГЛЯНЕЦ</option>
	<option value="25296" >МАССИВ ЯСЕНЬ</option>
	<option value="23188" >МАССИВ ОЛЬХИ</option>
	<option value="27336" >МАССИВ ОЛЬХИ (ЦВЕТ ЧЕРЕШНЯ)</option>
	<option value="27336" >МАССИВ ДУБ</option>
	

	</td>
	
  </select>
  </tr>

</div>

<div>


<tr>
<div>
<td><div class="name_1">Высота верхних шкафов:</div></td>
<!-- Второй список -->
  <td><select name="visota_shkaf" id="visota_shkaf" >
    <option value="1" >720</option>
    <option value="1.1" >915</option>
  </select></td>
</div>
</tr>

<tr>
<div>
<td><div class="name_1">Количество метров:</div></td>
 <!-- Поле ввода числа -->
 <td><input type="text" name="kol_metr" id="kol_metr" size=20 value="0"></td>
</div>
</tr>




<tr><td>Багет</td><td><input type="checkbox" name="baget" id="baget"></td></tr>
<tr><td>Подсветка</td><td><input type="checkbox" name="podsvetka" id="podsvetka"></td></tr>

<tr>
<div>
<td><div class="name_1">Cтеновая панель:</div></td>
<!-- Второй список -->
  <td><select name="sten_pan" id="sten_pan" >
    <option value="1" >Пластик</option>
    <option value="2" >Стекло</option>
	<option value="3" >Искусственный камень</option>
  </select></td>
</div>
</tr>

<tr>
<div>
<td><div class="name_1">Духовой шкаф :</div></td>
<!-- Второй список -->
  <td><select name="duh_shkaf" id="duh_shkaf" >
    <option value="1" >Встраиваемый зависимый (60)</option>
    <option value="2" >Встраиваемый независимый (60)</option>
	<option value="3" >Отдельно стоящий (60)</option>
	<option value="4" >Отдельно стоящий (50)</option>
	<option value="5" >Отсутствует</option>
  </select></td>
</div>
</tr>

<tr>
<div>
<td><div class="name_1">Варочная панель :</div></td>
<!-- Второй список -->
  <td><select name="var_panel" id="var_panel" >
    <option value="1" >встраиваемый зависимый (60)</option>
    <option value="2" >Встраиваемый независимый (60)</option>
	<option value="3" >Отдельно стоящий (60)</option>
	<option value="4" >Отдельно стоящий (50)</option>
	<option value="5" >Отсутствует</option>
  </select></td>
</div>
</tr>
<tr>
<div>
<td><div class="name_1">Вытяжка : </div></td>
<!-- Второй список -->
  <td><select name="vit" id="vit" >
    <option value="1" >Купольная (60см)</option>
    <option value="2" >Купольная (90см)</option>
	<option value="3" >Встраиваемая (60)</option>
	<option value="4" >Встраиваемая (50)</option>
	<option value="5" >Отсуствует</option>
  </select></td>
</div>
</tr>

<tr>
<div>
<td><div class="name_1">Посудомоечная машина:</div></td>
<!-- Второй список -->
  <td><select name="posud_mash" id="posud_mash" >
    <option value="1" >Встраиваемая (60)</option>
    <option value="2" >Встраиваемая (40)</option>
	<option value="3" >Невстраиваемая (60) </option>
	<option value="4" >Невстраиваемая (40)</option>
	<option value="5" >Отсуствует</option>
  </select></td>
</div>
</tr>

<tr>
<div>
<td><div class="name_1">Стиральная машина : </div></td>
<!-- Второй список -->
  <td><select name="stir_mash" id="stir_mash" >
    <option value="1" >Встраиваемая (60)</option>
    <option value="2" >Невстраиваемая(60)</option>
	<option value="3" >отсутсвует</option>
  </select></td>
</div>
</tr>

<tr>
<div>
<td><div class="name_1">Прикрепить изображение (план помещения, фото и др.):</br></td>
<td><input style="width: 350px;" accept="image/*" name="my_file[]" type="file"  value= /></br>
<input style="width: 350px;" accept="image/*" name="my_file" type="file"  value= /></td>
</div>
</tr>

<tr>
<!--Кнопка рассчитать -->
 <td> <div onClick="calculateForm();" style="cursor:hand;cursor:pointer;color:red;">Рассчитать</div></td>

<!-- Контейнер вывода результата -->
<td><div id="result"></div></td>
</tr>
</div>
</table>
</div>




</div>
<p class="byline" id="copyright">&nbsp;</p>

</body></html>

Hoshinokoe 04.02.2013 14:17

Jereme,

У вас неправильно записана формула и отсутствуют нормальные значения для селектов. Например:
<select name="stir_mash" id="stir_mash">
    <option value="1">Встраиваемая (60)</option>
    <option value="2">Невстраиваемая(60)</option>
    <option value="3">отсутсвует</option>
</select>

Если формулу записать нормально, то получится:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <script type="text/javascript">
        /*функция, отображающая результат на странице */
        function changeResult(result) {
            document.getElementById('result').innerHTML = result;
        }

        /*функция, проводящая непосредственно вычисления */
        function calculateForm() {
            var baget = (document.getElementById('baget').checked ? 5000 : 0);
            var podsvetka = (document.getElementById('podsvetka').checked ? 2000 : 1);

            var nazv_kuhni = document.getElementById('nazv_kuhni').value * 1,
                visota_shkaf = document.getElementById('visota_shkaf').value * 1,
                kol_metr = document.getElementById('kol_metr').value * 1,
                sten_pan = document.getElementById('sten_pan').value * 1,
                kol_metr = document.getElementById('kol_metr').value * 1,
                duh_shkaf = document.getElementById('duh_shkaf').value * 1,
                var_panel = document.getElementById('var_panel').value * 1,
                vit = document.getElementById('vit').value * 1,
                posud_mash = document.getElementById('posud_mash').value * 1,
                stir_mash = document.getElementById('stir_mash').value * 1;

            var result = (nazv_kuhni * visota_shkaf) + (kol_metr * baget) + podsvetka + (sten_pan * kol_metr)
                + duh_shkaf + var_panel + vit + posud_mash + stir_mash;

            changeResult(result);
        }
    </script>
</head>
<body>
    <div id="pagecontent">
        <!-- форма -->
        <form name="calculator" method="post">
            <table>
                <tbody>
                    <tr>
                        <td><div class="name_1">Название кухни:</div></td>
                        <!-- Первый список -->
                        <td>
                            <select name="nazv_kuhni" id="nazv_kuhni">
                                <option value="12852">Софтформинг тераа</option>
                                <option value="12036">Кухня с фасадами из ДСП</option>
                                <option value="17000">ПОСТФОРМИНГ</option>
                                <option value="18904">АКРИЛ</option>
                                <option value="17204">РЕТРО (МДФ с патиной)</option>
                                <option value="17952">АЛЬФА</option>
                                <option value="20604">ПАРИЖ</option>
                                <option value="20604">ЛОНДОН</option>
                                <option value="18700">Эмаль</option>
                                <option value="21896">Эмаль глянец</option>
                                <option value="14960">МДФ</option>
                                <option value="15980">ТЕХНО 1</option>
                                <option value="17952">МРАСЕЛЬ</option>
                                <option value="17952">ТЕХНО 5</option>
                                <option value="18904">ТУРИН</option>
                                <option value="20468">СОФИЯ</option>
                                <option value="20196">ТАФЕЛЬ ШПОН</option>
                                <option value="27472">ТАФЕЛЬ ШПОН ГЛЯНЕЦ</option>
                                <option value="25296">МАССИВ ЯСЕНЬ</option>
                                <option value="23188">МАССИВ ОЛЬХИ</option>
                                <option value="27336">МАССИВ ОЛЬХИ (ЦВЕТ ЧЕРЕШНЯ)</option>
                                <option value="27336">МАССИВ ДУБ</option>
                            </select>
                        </td>
                    </tr>
                    <tr>
                        <td><div class="name_1">Высота верхних шкафов:</div></td>
                        <!-- Второй список -->
                        <td>
                            <select name="visota_shkaf" id="visota_shkaf">
                                <option value="1">720</option>
                                <option value="1.1">915</option>
                            </select></td>
                    </tr>
                    <tr>
                        <td><div class="name_1">Количество метров:</div></td>
                        <!-- Поле ввода числа -->
                        <td><input type="text" name="kol_metr" id="kol_metr" size="20" value="0" /></td>
                    </tr>
                    <tr>
                        <td>Багет</td>
                        <td><input type="checkbox" name="baget" id="baget" /></td>
                    </tr>
                    <tr>
                        <td>Подсветка</td>
                        <td><input type="checkbox" name="podsvetka" id="podsvetka" /></td>
                    </tr>
                    <tr>
                        <td><div class="name_1">Cтеновая панель:</div></td>
                        <!-- Второй список -->
                        <td>
                            <select name="sten_pan" id="sten_pan">
                                <option value="1">Пластик</option>
                                <option value="2">Стекло</option>
                                <option value="3">Искусственный камень</option>
                            </select></td>
                    </tr>
                    <tr>
                        <td><div class="name_1">Духовой шкаф :</div></td>
                        <!-- Второй список -->
                        <td>
                            <select name="duh_shkaf" id="duh_shkaf">
                                <option value="1">Встраиваемый зависимый (60)</option>
                                <option value="2">Встраиваемый независимый (60)</option>
                                <option value="3">Отдельно стоящий (60)</option>
                                <option value="4">Отдельно стоящий (50)</option>
                                <option value="5">Отсутствует</option>
                            </select></td>
                    </tr>
                    <tr>
                        <td><div class="name_1">Варочная панель :</div></td>
                        <!-- Второй список -->
                        <td>
                            <select name="var_panel" id="var_panel">
                                <option value="1">встраиваемый зависимый (60)</option>
                                <option value="2">Встраиваемый независимый (60)</option>
                                <option value="3">Отдельно стоящий (60)</option>
                                <option value="4">Отдельно стоящий (50)</option>
                                <option value="5">Отсутствует</option>
                            </select></td>
                    </tr>
                    <tr>
                        <td><div class="name_1">Вытяжка : </div></td>
                        <!-- Второй список -->
                        <td>
                            <select name="vit" id="vit">
                                <option value="1">Купольная (60см)</option>
                                <option value="2">Купольная (90см)</option>
                                <option value="3">Встраиваемая (60)</option>
                                <option value="4">Встраиваемая (50)</option>
                                <option value="5">Отсуствует</option>
                            </select></td>
                    </tr>
                    <tr>
                        <td><div class="name_1">Посудомоечная машина:</div></td>
                        <!-- Второй список -->
                        <td>
                            <select name="posud_mash" id="posud_mash">
                                <option value="1">Встраиваемая (60)</option>
                                <option value="2">Встраиваемая (40)</option>
                                <option value="3">Невстраиваемая (60) </option>
                                <option value="4">Невстраиваемая (40)</option>
                                <option value="5">Отсуствует</option>
                            </select>
                        </td>
                    </tr>
                    <tr>
                        <td><div class="name_1">Стиральная машина : </div></td>
                        <!-- Второй список -->
                        <td>
                            <select name="stir_mash" id="stir_mash">
                                <option value="1">Встраиваемая (60)</option>
                                <option value="2">Невстраиваемая(60)</option>
                                <option value="3">отсутсвует</option>
                            </select>
                        </td>
                    </tr>
                    <tr>
                        <td><div class="name_1">Прикрепить изображение (план помещения, фото и др.):</div></td>
                        <td>
                            <input style="width: 350px;" accept="image/*" name="my_file[]" type="file" />
                            <input style="width: 350px;" accept="image/*" name="my_file" type="file" /></td>
                    </tr>
                    <tr>
                        <!--Кнопка рассчитать -->
                        <td><div onclick="calculateForm();" style="cursor: pointer; cursor: pointer; color: red;">Рассчитать</div></td>
                        <!-- Контейнер вывода результата -->
                        <td><div id="result"></div></td>
                    </tr>
                </tbody>
            </table>
        </form>
    </div>
    <p class="byline" id="copyright">&nbsp;</p>
</body>
</html>


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