Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

JS-калькулятор на сайте

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> JS-калькулятор на сайте
Имя
Сообщение << Старые топики   Новые топики >>
JS-калькулятор на сайте - 2009-10-02 11:59:39.390000   
][aKER_теоретик

Сообщений: 1192
Оценки: 0
Присоединился: 2009-03-30 09:17:08.123333
В общем, ситуация такова:
Есть строительная компания, для которой я пишу сайт. Возникла необходимость написать калькулятор, который будет считать стоимость выбранных пользователем услуг.

Примерно так будет:
название услуги: | текстовое поле, в которое вводится значение |
название услуги: | текстовое поле, в которое вводится значение |

var a = document.getElementByID("usluga1").value; var b = document.getElementByID("usluga2").value; var summ = a+b; document.write(summ); Таких полей для ввода значения (квадратные метры и т.д.) будет 22. Как оптимизировать код и запретить вводить в поля текстовые данные, а разрешить только цифры. Из детства помню, что на VB это делатся функцией Select Case, а как на JS?

Извините за глупый вопрос, но с JS чуть ли не впервые столкнулся.
Post #: 1
RE: JS-калькулятор на сайте - 2009-10-02 12:40:14.190000   
Cep}|{

Сообщений: 1396
Оценки: 0
Присоединился: 2007-06-26 01:11:51.416666
quote:

запретить вводить в поля текстовые данные, а разрешить только цифры

Вот типа того:
function check_digits(e) { var key; var keychar; if (window.event) { key=window.event.keyCode; } else if (e) { key=e.which; } else { return true; } keychar=String.fromCharCode(key); if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27)) { return true; } if ((('0123456789').indexOf(keychar)&gt;-1)) { return true; } else { return false; } } &lt;input onkeypress="return check_digits(event);"
Post #: 2
RE: JS-калькулятор на сайте - 2009-10-02 12:48:35.956666   
][aKER_теоретик

Сообщений: 1192
Оценки: 0
Присоединился: 2009-03-30 09:17:08.123333
Серж, спасибо, минут через 30 будет возможность проверить. А по функции подсчёта что можешь подсказать? Я-то понимаю как сделать этот калькулятор, но нужен максимально короткий код. Бредово будет писать summ = a + b + c … + n … и так 22 раза. Может как-то с помощью массива? Создать цикл, суммирующий все элементы массива. Что скажешь?
Post #: 3
RE: JS-калькулятор на сайте - 2009-10-02 12:56:01.956666   
Cep}|{

Сообщений: 1396
Оценки: 0
Присоединился: 2007-06-26 01:11:51.416666
По подсчету хрен его знает. Без массивов я их делал.
Не люблю я эти калькуляторы, ох как не люблю..
Post #: 4
RE: JS-калькулятор на сайте - 2009-10-02 12:59:48.366666   
][aKER_теоретик

Сообщений: 1192
Оценки: 0
Присоединился: 2009-03-30 09:17:08.123333
То-есть всё-таки нормально будет, если каждой переменной по ID присвоить значение текстового поля а потом их все суммировать? Блин, всё-таки кажется, что есть более оптимальное решение.
Post #: 5
RE: JS-калькулятор на сайте - 2009-10-02 13:00:32.660000   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
Можно всем полям которые надо суммировать дать специальные имена, типа calc_number1, calc_number2 и тд. А потом просто найти все эти элементы по имени и просуммировать.
Post #: 6
RE: JS-калькулятор на сайте - 2009-10-02 13:02:02.466666   
][aKER_теоретик

Сообщений: 1192
Оценки: 0
Присоединился: 2009-03-30 09:17:08.123333

quote:

ORIGINAL: rgo

Можно всем полям которые надо суммировать дать специальные имена, типа calc_number1, calc_number2 и тд. А потом просто найти все эти элементы по имени и просуммировать.


Чем этот способ отличается от того, что я предложил в самом начале? В твоём случае тоже нужно суммировать вручную 22 элемента, что не есть практично.
Post #: 7
RE: JS-калькулятор на сайте - 2009-10-02 13:07:23.626666   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
Ну почему же вручную? Искать можно в цикле по совпадению с шаблоном. Просто перебираем все, выбираем те, имя которых нам подходит, и используем их по назначению.
Post #: 8
RE: JS-калькулятор на сайте - 2009-10-02 13:46:48.180000   
][aKER_теоретик

Сообщений: 1192
Оценки: 0
Присоединился: 2009-03-30 09:17:08.123333

quote:

ORIGINAL: rgo

Ну почему же вручную? Искать можно в цикле по совпадению с шаблоном. Просто перебираем все, выбираем те, имя которых нам подходит, и используем их по назначению.


Да не шарю я в JS практически. Поэтому и создал тему.
Post #: 9
RE: JS-калькулятор на сайте - 2009-10-02 14:20:34.080000   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
Я тоже ))
Но я вспомнил про функцию типа get_element_by_name. Может это была функция библиотеки, которой я пользовался когда с ajax развлекался. Может это родная js функция. С её помощью всё вполпинка делается ведь.
Post #: 10
RE: JS-калькулятор на сайте - 2009-10-02 14:54:55.900000   
][aKER_теоретик

Сообщений: 1192
Оценки: 0
Присоединился: 2009-03-30 09:17:08.123333
Короче, придумал так:

&lt;input name="usluga[]"&gt; &lt;br&gt; &lt;input name="usluga[]"&gt; &lt;br&gt; &lt;input type="button" оnclick="calc()"&gt; &lt;sсriрt language="javasсriрt"&gt; function calc() { for (var i=0; i&lt;=21; i++) { summ += usluga[i]; } } &lt;/sсriрt&gt; Только подскажите, пожалуйста, как правильно объявить переменные, чтоб всё правильно посчиталось.
Post #: 11
RE: JS-калькулятор на сайте - 2009-10-02 17:38:29.963333   
mishok

Сообщений: 239
Оценки: 0
Присоединился: 2007-07-03 23:42:21.170000
quote:

ORIGINAL: rgo

Я тоже ))
Но я вспомнил про функцию типа get_element_by_name. Может это была функция библиотеки, которой я пользовался когда с ajax развлекался. Может это родная js функция. С её помощью всё вполпинка делается ведь.


все правильно… стадартная функция это…
зачем изобретать велосипед с квадратными колесами типа sum=a+b+c+…+n ??? 8|

Афтара, полистай справочники по JS…
Post #: 12
Страниц:  [1]
Все форумы >> [Веб-программинг] >> JS-калькулятор на сайте







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.