Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   вопрос по калькулятору для сайта (https://javascript.ru/forum/misc/79580-vopros-po-kalkulyatoru-dlya-sajjta.html)

Улан 25.02.2020 07:05

вопрос по калькулятору для сайта
 
Здравствуйте! проблема (для меня это пока проблема) такая: пользователь вносит нужные ему размеры зеркала а ему калькулятор считает за кв/м, если пользователь выберет доп.услугу то сумма прибавляется к основной сумме, Но этого не происходит, мой код при выборе услуги без обточки (т.е без услуги) сумма не показывает, показывает только при выборе услуги(но почему в первый раз когда пишешь размеры показывает сумма за кв/м но при изменении то есть если клиент просто решил проверить узнать сумму с услугой, то уже без услуги сумма не показывает
https://codepen.io/tu03422/pen/xxGgqpE . помогите пжлст.

voraa 25.02.2020 07:29

Сначала исправить ошибку

Uncaught ReferenceError: resultat1 is not defined pen.js:19

Улан 25.02.2020 08:41

вот как раз непонятно что за ошибка, я только начинаю js изучать, поможете?

voraa 25.02.2020 08:58

Ошибка из за того, что вы используете переменную resultat1, но ни где не определяете ее. Т.е нет ни var resultat1;, ни let resultat1;

Улан 25.02.2020 09:39

https://codepen.io/tu03422/pen/xxGgqpE еще раз посмотрите? я исправил как Вы указали ошибки, вроде получается, теперь правильно? так и должно быть? просто я сам не понял суть ошибки.

voraa 25.02.2020 09:52

Ну работает. Ошибок не выдает.
А правильно или нет - это вам судить.
По мне, так странно, что, когда вводишь только ширину или высоту (одно значение), она выдает уже какую то цену за кв.метр.

Зы. Совет на будущее.
НЕ ИСПОЛЬЗУЙТЕ placeholder для указания того, что вводится. Ни для названия, ни для формата.
Надо использовать label.

В таком маленьком примере это не столь принципиально, но представьте, что полей десяток или больше. Человек начинает вводить, а потом хочет уточнить то ли он вводит, а название уже пропало. Тоже касается и форматов. Когда задают placeholder='+7(xxx)xxx-xxx-xx', то начиная вводить можно забыть, нужны там скобки или нет, можно ли пробелы, нужны ли '-'...
Что вводится и как вводить должно быть видно всегда.

Улан 25.02.2020 09:59

спасибо Вам, если Вы еще тут побудете можно еще кое что в продолжении этого проекта покажу?

Улан 25.02.2020 10:10

https://codepen.io/tu03422/pen/xxGgqpE еще раз гляньте пожалуйста, я теперь еще одну опцию с услугой добавил,

voraa 25.02.2020 10:37

Если я правильно понял смысл, надо так

function calcPrice () {
   let firstInp = Number(document.querySelector('#a').value); 
   let secondInp = Number(document.querySelector('#b').value);

   var mirror = 660;// сумма за квадрат зеркала
   var meter = 140; // сумма за пог.метр обработки краев зеркала(периметр) 
                    //  формула: (ширина+ширина * высота+высота) (a+2*b+2)*140 
   var e = document.getElementById("selector-32");
   var obtochka = Number(e.options[e.selectedIndex].value);
   var p = document.getElementById("selector-30");
   var picture = Number(p.options[p.selectedIndex].value);
    
  
   if (firstInp  && secondInp ) {
     let rezultat = (firstInp * secondInp) * mirror 
         + (firstInp + secondInp) * 2 * obtochka
         + (firstInp * secondInp) * picture
		
     document.getElementById('rezultat').value = rezultat;
   }else {
   document.getElementById('rezultat').value = 0
   }
};

Улан 25.02.2020 10:58

спасибо


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