JS-калькулятор на сайте
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
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 чуть ли не впервые столкнулся.
|
|
|
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)>-1)) { return true; } else { return false; }
}
<input onkeypress="return check_digits(event);"
|
|
|
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 раза. Может как-то с помощью массива? Создать цикл, суммирующий все элементы массива. Что скажешь?
|
|
|
RE: JS-калькулятор на сайте - 2009-10-02 12:56:01.956666
|
|
|
Cep}|{
Сообщений: 1396
Оценки: 0
Присоединился: 2007-06-26 01:11:51.416666
|
По подсчету хрен его знает. Без массивов я их делал. Не люблю я эти калькуляторы, ох как не люблю..
|
|
|
RE: JS-калькулятор на сайте - 2009-10-02 12:59:48.366666
|
|
|
][aKER_теоретик
Сообщений: 1192
Оценки: 0
Присоединился: 2009-03-30 09:17:08.123333
|
То-есть всё-таки нормально будет, если каждой переменной по ID присвоить значение текстового поля а потом их все суммировать? Блин, всё-таки кажется, что есть более оптимальное решение.
|
|
|
RE: JS-калькулятор на сайте - 2009-10-02 13:00:32.660000
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
Можно всем полям которые надо суммировать дать специальные имена, типа calc_number1, calc_number2 и тд. А потом просто найти все эти элементы по имени и просуммировать.
|
|
|
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 элемента, что не есть практично.
|
|
|
RE: JS-калькулятор на сайте - 2009-10-02 13:07:23.626666
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
Ну почему же вручную? Искать можно в цикле по совпадению с шаблоном. Просто перебираем все, выбираем те, имя которых нам подходит, и используем их по назначению.
|
|
|
RE: JS-калькулятор на сайте - 2009-10-02 13:46:48.180000
|
|
|
][aKER_теоретик
Сообщений: 1192
Оценки: 0
Присоединился: 2009-03-30 09:17:08.123333
|
quote:
ORIGINAL: rgo Ну почему же вручную? Искать можно в цикле по совпадению с шаблоном. Просто перебираем все, выбираем те, имя которых нам подходит, и используем их по назначению. Да не шарю я в JS практически. Поэтому и создал тему.
|
|
|
RE: JS-калькулятор на сайте - 2009-10-02 14:20:34.080000
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
Я тоже )) Но я вспомнил про функцию типа get_element_by_name. Может это была функция библиотеки, которой я пользовался когда с ajax развлекался. Может это родная js функция. С её помощью всё вполпинка делается ведь.
|
|
|
RE: JS-калькулятор на сайте - 2009-10-02 14:54:55.900000
|
|
|
][aKER_теоретик
Сообщений: 1192
Оценки: 0
Присоединился: 2009-03-30 09:17:08.123333
|
Короче, придумал так: <input name="usluga[]">
<br>
<input name="usluga[]">
<br>
<input type="button" оnclick="calc()">
<sсriрt language="javasсriрt">
function calc()
{
for (var i=0; i<=21; i++)
{
summ += usluga[i];
} }
</sсriрt> Только подскажите, пожалуйста, как правильно объявить переменные, чтоб всё правильно посчиталось.
|
|
|
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…
|
|
|
|
|