Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Калькулятор услуг (https://javascript.ru/forum/misc/78797-kalkulyator-uslug.html)

joyandjoy 06.11.2019 13:58

А ну вот. Да. Теперь все работает. Еще потестирую. Проще было чем в варианте из шапки темы)
Спасибо!

laimas 06.11.2019 13:58

Цитата:

Сообщение от joyandjoy
Обязателен только размер и тип. Рамка и упаковка не обязательны

Уберите атрибут required у списка frame и атрибуты disabled и selected у его первой опции.

С условием проверки будет считать при обязательном выборе размера и типа (код менять не требуется), а без условия всегда (код как в посте #19).

laimas 06.11.2019 14:08

Цитата:

Сообщение от joyandjoy
Проще было чем в варианте из шапки темы

Ну так кто вас заставляет так запутанно объект описывать. Можно и не в атрибутах держать цены, а описать их в js объекте. Все зависит от того как удобнее на сервере формировать страницу, он ведь ведает этими данными, он готовит все.

Но если вы оперируете списками, от которых зависит итог, значит имена первичных ключей (свойств) объекта выгоднее сделать равными именам списков, под которыми содержатся обычные индексные массивы цен. Зачем тут объекты, если проще представлять размер как индекс этих массивов?

joyandjoy 06.11.2019 18:01

Цитата:

Сообщение от laimas (Сообщение 514986)
Ну так кто вас заставляет так запутанно объект описывать. Можно и не в атрибутах держать цены, а описать их в js объекте. Все зависит от того как удобнее на сервере формировать страницу, он ведь ведает этими данными, он готовит все.

Но если вы оперируете списками, от которых зависит итог, значит имена первичных ключей (свойств) объекта выгоднее сделать равными именам списков, под которыми содержатся обычные индексные массивы цен. Зачем тут объекты, если проще представлять размер как индекс этих массивов?

Ну надо тоже понимать, уровень владения совершенно разный)

laimas 06.11.2019 18:09

Цитата:

Сообщение от joyandjoy
Ну надо тоже понимать, уровень владения совершенно разный

Да что тут понимать то ) Вот в примере так определяется индекс по которому будет выбираться значение:

size = p.eq(0).val()-1;

то есть, берется значение списка размера (выбранной опции), вычитается 1, понятно, потому как индексы начинаются с 0. Но ведь форма отправляется на сервер, а значения опций списков это только в примере чинно от 1, а в реалии это может быть какое-то уникальное значение, например 83, под которым сервер хранит такой набор.

Непорядок, и корректнее брать индекс выбранной опции (опции списка, это коллекция, следовательно в этом наборе они тоже имеют индексы) минус единица:

size = p.eq(0).children(':selected').index()-1


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