![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Mar 2006
Сообщений: 76
|
Есть такая форма:
![]() Она состоит из Приход: 10 текст инпутов в столбец - комментарии. потом идут суммы. Расход: 10 текст инпутов в столбец - комментарии. потом идут суммы. Поле итого (приход): Итоговая сумма сумм таблицы приход. Поле итого (расход): Итоговая сумма сумм таблицы расход. Необходимо чтобы при вводе итоговая суммы менялась сразу.. т.е. если я в первом поле сумма набрал 100 оно отобразилось сразу в итого.... И как сделать сумму полей если они не заполнены все.. т.е. если из 10 сумм заполнено только 3 или 6 .. Спасибо. Добавил аот такой код... Но итоговая сумма появляется если заполнены все три поля.... как избежать заполнение всех полей? Последний раз редактировалось glukaviy; 25.11.2009 в 01:06. |
|
|||||
|
Модрон-ветеринар
|
1. Лучше не использовать класс Key.
Лучше использовать класс TextFileld, точнее, обработчик его события onChanged. Эта функция будет вызываться всякий раз, когда юзер что-то введет в поле, на которое повешен этот обработчик. В эту функцию запишите искомое суммирование (естественно, с использованием Number()); 2. По сути - в вашем коде, скорее всего, дело в том, что если в поле нет текста, Number() выдает NaN, и суммирование с этим NaN будет тоже NaN. Я это не проверял, проверьте вы. Если это так, то подумайте, и вставьте где нужно проверку. Для этого можно использовать функцию isNaN. Если аргумент функции - не number-типа, то функция выдаст true. Это можно использовать при проверке и отказаться от суммирования такого элемента. То есть (проверка пустой строки) выведет true, и если это так, то элемент не должен входить в формулу суммирования, или должен быть равен нулю. Например, можно так: function summation () { s1 = Number(_root.summ1.text); s2 = Number(_root.summ2.text); s3 = Number(_root.summ3.text); !isNaN(s1) ? sum1 = s1 : sum1 = 0; !isNaN(s2) ? sum2 = s2 : sum2 = 0; !isNaN(s3) ? sum3 = s3 : sum3 = 0; _root.itog1.text = sum1 + sum2 + sum3; } _root.summ1.onChanged = _root.summ2.onChanged = _root.summ3.onChanged = summation; _root.summ1.restrict = _root.summ2.restrict = _root.summ3.restrict = '0-9.'; Добавлено через 35 минут Если полей много, то в функции можно сделать циклы, для аккуратности. Последний раз редактировалось mooncar; 25.11.2009 в 02:41. |
|
|||||
|
Регистрация: Mar 2006
Сообщений: 76
|
Спасибо, справился сам... тему можно закрыть.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 22:32. |
|
|
« Предыдущая тема | Следующая тема » |
|
|