Javascript.RU

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

вопрос по калькулятору для сайта
Здравствуйте! проблема (для меня это пока проблема) такая: пользователь вносит нужные ему размеры зеркала а ему калькулятор считает за кв/м, если пользователь выберет доп.услугу то сумма прибавляется к основной сумме, Но этого не происходит, мой код при выборе услуги без обточки (т.е без услуги) сумма не показывает, показывает только при выборе услуги(но почему в первый раз когда пишешь размеры показывает сумма за кв/м но при изменении то есть если клиент просто решил проверить узнать сумму с услугой, то уже без услуги сумма не показывает
https://codepen.io/tu03422/pen/xxGgqpE . помогите пжлст.
Ответить с цитированием
  #2 (permalink)  
Старый 25.02.2020, 07:29
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

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

Uncaught ReferenceError: resultat1 is not defined pen.js:19
Ответить с цитированием
  #3 (permalink)  
Старый 25.02.2020, 08:41
Интересующийся
Отправить личное сообщение для Улан Посмотреть профиль Найти все сообщения от Улан
 
Регистрация: 22.02.2020
Сообщений: 13

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

Последний раз редактировалось Улан, 25.02.2020 в 08:46.
Ответить с цитированием
  #4 (permalink)  
Старый 25.02.2020, 08:58
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

Ошибка из за того, что вы используете переменную resultat1, но ни где не определяете ее. Т.е нет ни var resultat1;, ни let resultat1;
Ответить с цитированием
  #5 (permalink)  
Старый 25.02.2020, 09:39
Интересующийся
Отправить личное сообщение для Улан Посмотреть профиль Найти все сообщения от Улан
 
Регистрация: 22.02.2020
Сообщений: 13

https://codepen.io/tu03422/pen/xxGgqpE еще раз посмотрите? я исправил как Вы указали ошибки, вроде получается, теперь правильно? так и должно быть? просто я сам не понял суть ошибки.
Ответить с цитированием
  #6 (permalink)  
Старый 25.02.2020, 09:52
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

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

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

В таком маленьком примере это не столь принципиально, но представьте, что полей десяток или больше. Человек начинает вводить, а потом хочет уточнить то ли он вводит, а название уже пропало. Тоже касается и форматов. Когда задают placeholder='+7(xxx)xxx-xxx-xx', то начиная вводить можно забыть, нужны там скобки или нет, можно ли пробелы, нужны ли '-'...
Что вводится и как вводить должно быть видно всегда.
Ответить с цитированием
  #7 (permalink)  
Старый 25.02.2020, 09:59
Интересующийся
Отправить личное сообщение для Улан Посмотреть профиль Найти все сообщения от Улан
 
Регистрация: 22.02.2020
Сообщений: 13

спасибо Вам, если Вы еще тут побудете можно еще кое что в продолжении этого проекта покажу?
Ответить с цитированием
  #8 (permalink)  
Старый 25.02.2020, 10:10
Интересующийся
Отправить личное сообщение для Улан Посмотреть профиль Найти все сообщения от Улан
 
Регистрация: 22.02.2020
Сообщений: 13

https://codepen.io/tu03422/pen/xxGgqpE еще раз гляньте пожалуйста, я теперь еще одну опцию с услугой добавил,
Ответить с цитированием
  #9 (permalink)  
Старый 25.02.2020, 10:37
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

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

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
   }
};

Последний раз редактировалось voraa, 25.02.2020 в 10:43.
Ответить с цитированием
  #10 (permalink)  
Старый 25.02.2020, 10:58
Интересующийся
Отправить личное сообщение для Улан Посмотреть профиль Найти все сообщения от Улан
 
Регистрация: 22.02.2020
Сообщений: 13

спасибо
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт корзины для сайта EasyNetShop.ru Ваши сайты и скрипты 0 17.11.2016 14:57
REST API для сайта на Node js Ashotich Node.JS 2 26.09.2016 23:04
Скрипт для сайта andrey66322 Работа 0 09.06.2016 16:48
Техника создания интерфейса для сайта konfetka_ksu Элементы интерфейса 2 20.03.2014 14:40
Информер-виджет для сайта vertmann Общие вопросы Javascript 4 04.03.2014 16:16