Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите пожалуйста ,есть проблема с кодом (https://javascript.ru/forum/misc/70307-pomogite-pozhalujjsta-est-problema-s-kodom.html)

Mikhail-lex 26.08.2017 08:14

Помогите пожалуйста ,есть проблема с кодом
 
Собрался сделать калькулятор для сайта провайдера ,но он не работает, помогите решить проблему пожалуйста
[JS]
<script>
function calc() {
            
            var type_design = document.getElementById("type_design");
            var is_html = document.getElementById("is_html");
            var is_html1 = document.getElementById("is_html1");
            var is_html2 = document.getElementById("is_html2");
            var is_html3 = document.getElementById("is_html3");
            var month3 = document.getElementById("month3");
            var month6 = document.getElementById("month6");
            var month12 = document.getElementById("month12");
            var result = document.getElementById("result"); 
 
            var price = 0;
            price += parseInt(type_design.options[type_design.selectedIndex].value);
            price += (is_html.checked == true) ? parseInt(is_html.value) : 0;
            price += (is_html1.checked == true) ? parseInt(is_html1.value) : 0;
            price += (is_html2.checked == true) ? parseInt(is_html2.value) : 0;
            price += (is_html3.checked == true) ? parseInt(is_html3.value) : 0;

            price *= (month3.checked == true) ? parseInt(month3.value) : 0;
            price *= (month6.checked == true) ? parseInt(month6.value) : 0;
            price *= (month12.checked == true) ? parseInt(month12.value) : 0;

            result.innerHTML = price;
        }
 </script>       
[/JS]
    </head>
    <body>
        <b>Калькулятор цен</b><br/>
        <select onchange="calc()" id="type_design">
            <option value="0" selected>Выберите тариф</option>
            <option value="900">Тариф1</option>
            <option value="1200">Тариф2</option>
            <option value="1900">Тариф3</option>
        </select><br/>
        <label for="is_html">
        <input type="radio" onchange="calc()" name="first" value="0" id="is_html" checked="checked"/>
        Без опций</label>
        <br/>
        <label for="is_html1">
        <input type="radio" onchange="calc()" name="first" value="100" id="is_html1" /> Пакет 1</label>
        <br/>
        <label for="is_html2">
        <input type="radio" onchange="calc()" name="first" value="175" id="is_html2" />
        Пакет 2</label>
        <br/>
        <label for="is_html3">
        <input type="radio" onchange="calc()" name="first" value="250" id="is_html3" />
        Пакет 3</label>
        <br/>
        <label for="month1">
        <input type="radio" onchange="calc()" name="month_col" value="1" id="month1" checked="checked"/>
        1 Месяц</label>
        <br/>
        <label for="month3">
        <input type="radio" onchange="calc()" name="month_col" value="3" id="month3"/>
        3 Месяца</label>
        <br/>
        <label for="month6">
        <input type="radio" onchange="calc()" name="month_col" value="6" id="month6"/>
        6 Месяцев</label>
        <br/>
        <label for="month12">
        <input type="radio" onchange="calc()" name="month_col" value="12" id="month12"/>
        12 Месяцев</label>
        <br/>
        <div>Стоимость: <span id="result">0</span> руб.</div>
    </body>

рони 26.08.2017 09:53

Mikhail-lex,
не умножайте результат на ноль , строки 22-23, заменить ноль на 1
и строка 16 на вский случай проще так
price += parseInt(type_design.value);

Mikhail-lex 26.08.2017 10:54

Большое Спасибо за ответ , очень помог и решил проблему , но если умножение надо провести вычитание числового значения из полученного результата ( это скидка при единовременной оплате за несколько месяцев ), не подскажете как ее воплотить в коде .... Заранее спасибо за ответ :thanks:

рони 26.08.2017 11:19

Mikhail-lex,
price *= (ВАША_СКИДКА== true) ? .8 : 1;//скидка 20%

Mikhail-lex 26.08.2017 11:45

А можно ответ как для полного чайника , например куском моего кода или я что то не так озвучил :blink:
Вот что мне надо , например : price *= (month3.checked == true) ? parseInt(month3.value) : 1;
по завершению умножения , от полученного результата будет вычитаться например число 155 , то есть при нажатии на радио кнопку будет происходить и умножение и в последствии вычитание .
Подскажите как это сделать в коде ....
Число которое будет вычитаться указывается только в скрипте

рони 26.08.2017 11:52

Mikhail-lex,
не понимаю, надо вычитать вычитайте
price -= (month3.checked == true) ? parseInt(month3.value) : 0;

Mikhail-lex 26.08.2017 12:33

Еще раз Большое спасибо за ответ , не совсем то что хотелось и имелось в виду заданного вопроса , но вы дали мне за что зацепится для решения проблемы и благодаря вам у меня все получилось ...
Еще раз спасибо :thanks:


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