| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Динамический калькулятор |
| Автор: Axiom 31.1.2011, 15:52 | ||
| Всем доброго! Пишу скрипт следующего типа: Юзер в input#num вводит какую-либо цифру. Скрипт автоматов выдирает её и множит, допустим на 2.
Когда ввожу число, то алерт выводит пустое значение. Но если ввести еще одно, то выводит предыдущее значение. Подскажите в чем проблема. Почему так происходит? |
| Автор: ksnk 31.1.2011, 17:42 | ||
потому что изменение в инпуте из которого читается значение еще не произошло. Так уж сложились обработчики событий. Один из способов решения - отложить обработку вычисления на какое-то время
Другой способ - перенести вычисление на метод keyup. а зачем там возвращается false? |
| Автор: Axiom 31.1.2011, 17:57 | ||||||
| Теперь почему-то вообще не работает. Даже алерта нет. Пробовал и .keypress и .keyup. Это я как-то на автомате. По сути этот блок можно пропустить...
Также пробовал без тайм-аута. Есть, конечно, вариант через post-запрос скормить значение инпута, php:
proc.php
Таким образом всё работает, но это страшный велосипед. |
| Автор: ksnk 31.1.2011, 19:14 | ||
для jquery var e = event || window.event; тоже можно пропустить. Событие уже правильно оформлено и так.
вот такое у меня исправно работет. Алерт есть. |
| Автор: Axiom 31.1.2011, 19:54 |
| Разобрался. Обработчик .keypress привязывался к узлу input, до его появления в структуре dom. ksnk, Спасибо Твой последний пример и указал на мою ошибку. =) |