| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: для новичков > Обработка числового поля |
| Автор: zheka1980 29.12.2014, 20:22 | ||||||
Господа, есть несколько полей
Этим полям присваивается какое-то значение типа float. А есть еще одно поле
Нужно сложить значения всех полей component и записать в поле summary. Причем по техническим причинам это нужно делать только в цикле, то есть вариант summary=component[1]+component[2]+.... не пойдет. Нужно в цикле к summary прибавалять component[i]. А поскольку поле текстовое, я вынужден каждый раз брать данные, обрабатывать их функцией Number, затем складывать, затем записывать.
Работает, но меня не покидает ощущение, что я нагородил чего-то. Нельзя ли как-то проще? МОжно ли сразу input придать только цифровой тип? Я натыкался на информацию о такой возможности, но пишут, то вроде бы не все браузеры подерживают. |
| Автор: sQu1rr 29.12.2014, 23:24 | ||
Да вроде все верно. Только вместо Number() я бы использовал parseFloat() ну и DOM лишний раз трогать не стоит. Создайте временную переменную, туда считайте результат, а потом ее запишите в DOM. Ну и разумеется все getElementBy нужно во временную переменную, что бы каждый раз не искать, то же самое и с $('.field').size(). Да и если используете jquery что вам мешает написать $('...').get(i).value?? Добавлено через 7 минут и 31 секунду Что-то вроде (НЕ ПРОВЕРЯЛ, считайте что это псевдокод)
|
| Автор: zheka1980 30.12.2014, 04:37 | ||||
Вместо чего? В приведенном вами примере данной конструкции не увидел. Я только начал вникать в jquery Неужели это операция присваивания?
|
| Автор: Aliance 30.12.2014, 08:35 | ||
имелось ввиду, раз уже у вас подключена библиотека jQuery, то разумнее все выборки делать в ней (вместо вашего варианта с getElementsByName). Да. http://api.jquery.com/val/ Только я бы не рекомендовал делать выборку по атрибуту там, где этого можно не делать - все же она не самая быстрая.
PS: в HTML5 атрибут name помечен как deprecated, рекомендуется использовать id. Да и выборки по нему быстрее. |
| Автор: sQu1rr 30.12.2014, 12:19 | ||||
wut? только в <img> насколько я знаю, может еще где, но точно не в <input>.
А вообще, да, не нужно придумывать велосипеды, и просто
как сказал мр. Aliance http://api.jquery.com/ - изучайте |
| Автор: zheka1980 2.1.2015, 14:38 | ||||
| Все получилось. Спасибо. Осталась одна деталь, не могу никак правильно написать (какой-то синтаксис Jquery для меня вычурный, если честно) Вот так я получал номер инпута, в котором возникло событие select библиотеки autocomplete:
Так вот как мне теперь, минуя обращение к DOM средставми JavaScript присвоить значение инпуту? Я заменил в инпуте nаmе=ing_caloric на class=ing_caloric и сделал так:
Где-то ошибка... |
| Автор: Aliance 11.1.2015, 10:24 | ||
вообще сплошная ошибка. опишите словами чего вы хотите добиться. а еще лучше с примером разметки на jsfiddle |