Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.08.2017, 05:45
Профессор
Отправить личное сообщение для Роман Андреевич Посмотреть профиль Найти все сообщения от Роман Андреевич
 
Регистрация: 12.08.2016
Сообщений: 299

События формы
Коллеги доброго времени суток, проблема следующая:

На странице есть input в который пользователь вводит число, какое нибудь не важно. Далее скрипт на сервер отправляет данные.

Теперь собственно вопрос: я ловлю событие input'а :

document.addEventListener('input', function(e) {

    e = e || window.e;
    var target = e.target || window.target;
    
    while (target != this) {
        
        if (target.tagName != 'INPUT') return;
            
        if (target.hasAttribute('data-action')) { 
            
            if (target.getAttribute('data-action') == 'refresh') {

                console.log(target.value);
                
            } else return;
            
        } else return;
        
        target = target.parentNode;
    }


С тем что происходит внутри события все понятно, надеюсь. НО!!! как сделать, что бы в консоле выводилось не каждое value, которое выводит пользователь а последнее. Т.е. я ввожу например 50, сначала в консоле выводится 5 а потом 50, а как сделать что бы выводило сразу 50. Выводить число нужно с задержкой, т.е. пользователь что то ввел, ему дается 2 секунды, а потом выводится в консоль его число. Примерно так.
Ответить с цитированием
  #2 (permalink)  
Старый 17.08.2017, 06:24
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от Роман Андреевич
С тем что происходит внутри события все понятно, надеюсь
Не понятны строки 3 и 4, и наличие цикла, что они делают?
Ответить с цитированием
  #3 (permalink)  
Старый 17.08.2017, 06:26
Профессор
Отправить личное сообщение для Роман Андреевич Посмотреть профиль Найти все сообщения от Роман Андреевич
 
Регистрация: 12.08.2016
Сообщений: 299

e - событие
target - записали в переменную

можно без этих строк, суть не в них
Ответить с цитированием
  #4 (permalink)  
Старый 17.08.2017, 06:28
Профессор
Отправить личное сообщение для Роман Андреевич Посмотреть профиль Найти все сообщения от Роман Андреевич
 
Регистрация: 12.08.2016
Сообщений: 299

Вопрос, в том, как выводить в консоль, только одно число а не каждое, которое ввел пользователь. Т.к. input (событие) срабатывает при каждом изменении поля input, нужно взять только последнее число, через 2 секунды после
Ответить с цитированием
  #5 (permalink)  
Старый 17.08.2017, 06:34
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

заменить событие например на
el.addEventListener('blur', function(e) { // потеря фокуса инпутом

Последний раз редактировалось j0hnik, 17.08.2017 в 06:43.
Ответить с цитированием
  #6 (permalink)  
Старый 17.08.2017, 06:37
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Роман Андреевич,
Суть в том что весь код неверен, и с точки зрения кроссбраузерности, и с точки зрения делегирования, почитайте Основы работы с событиями и не пишите больше такой бред.
Ответить с цитированием
  #7 (permalink)  
Старый 17.08.2017, 06:39
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

j0hnik,
Товарищ, событие blur не всплывает так что же ты его на document повесил?

Последний раз редактировалось Rise, 17.08.2017 в 06:43.
Ответить с цитированием
  #8 (permalink)  
Старый 17.08.2017, 06:42
Профессор
Отправить личное сообщение для Роман Андреевич Посмотреть профиль Найти все сообщения от Роман Андреевич
 
Регистрация: 12.08.2016
Сообщений: 299

Rise, а в чем бред то??????? с точки зрения кроссбраузерности и делегирования в чем проблема то, везде работает!!!!!

Есть проблема и я задал вопрос, если не поняли вопроса так и скажите...
Ответить с цитированием
  #9 (permalink)  
Старый 17.08.2017, 06:43
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от Rise Посмотреть сообщение
j0hnik,
Товарищ, событие blur не вплывает так что же ты его на document повесил?
document.addEventListener('focusout', function(e) { // потеря фокуса инпутом
Ответить с цитированием
  #10 (permalink)  
Старый 17.08.2017, 06:43
Профессор
Отправить личное сообщение для Роман Андреевич Посмотреть профиль Найти все сообщения от Роман Андреевич
 
Регистрация: 12.08.2016
Сообщений: 299

А говорить про бред это детский сад, форум для того и создан, одни просят помощи, а другие если могут помогают, по мойму все нормально
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему не работает .bind для события onsubmit формы? Chuck90 Events/DOM/Window 2 26.10.2013 18:48
После эмуляции события Click не работает отправка формы (IE 9) denic-nik Internet Explorer 4 01.08.2013 16:15
Дождаться отклика события, или проверка формы перед отправкой vid Общие вопросы Javascript 3 09.07.2013 21:36
Обработчик события формы "onsubmit". trikadin Элементы интерфейса 6 01.06.2010 00:20
События в javascript для формы. woo_hoo Общие вопросы Javascript 5 17.07.2008 19:13