Как получить новое значение ввода HTML после того, как нажатие клавиши изменило его?

У меня есть поле ввода HTML


Я прикрепил обработчик 9X_html-dom для события 'keyup', но если я получаю текущее 9X_vanilla-javascript значение поля ввода во время обработчика 9X_webpage события, я получаю значение таким, каким 9X_span оно было, а не как будет!

Я попытался выбрать 9X_html-dom события «нажатие клавиши» и «изменить», та же проблема.

Я уверен, что 9X_vanillajs это легко решить, но в настоящее время я 9X_javascript-library думаю, что единственное решение для меня 9X_span - использовать короткий тайм-аут для запуска 9X_vanillajs некоторого кода через несколько миллисекунд 9X_dom в будущем!

Есть ли способ получить текущее значение во время этих событий?

РЕДАКТИРОВАТЬ: похоже, у меня 9X_div возникла проблема с кешированием моего js-файла, поскольку 9X_html5 я позже проверил тот же код, и он работал 9X_divs нормально. Я бы удалил вопрос, но не уверен, что 9X_divs это теряет репутацию добрых людей, которые 9X_html-tag публиковали идеи :)

31
0
6
Общее количество ответов: 6

Ответ #1

Ответ на вопрос: Как получить новое значение ввода HTML после того, как нажатие клавиши изменило его?

Вы можете разместить свой код? Я не нахожу 9X_vanillajs в этом никаких проблем. Протестировано в 9X_webpage Firefox 3.01 / safari 3.1.2 с:

function showMe(e) {
// i am spammy!
  alert(e.value);
}
....

40
1

  • Я пришел домой, проверил свой код без подрывной деятельности, и он работал нормально. Я думаю, у меня, должно быть, была проблема с кеширов ...

Ответ #2

Ответ на вопрос: Как получить новое значение ввода HTML после того, как нажатие клавиши изменило его?

Чтобы дать современный подход к этому вопросу. Это 9X_ecmascript хорошо работает, включая Ctrl + v . GlobalEventHandlers.oninput.

var onChange = function(evt) {
  console.info(this.value);
  // or
  console.info(evt.target.value);
};
var input = document.getElementById('some-id');
input.addEventListener('input', onChange, false);

20
0

Ответ #3

Ответ на вопрос: Как получить новое значение ввода HTML после того, как нажатие клавиши изменило его?

Существует два типа входных значений: свойство поля 9X_javascript-library и html атрибут поля.

Если вы используете событие 9X_javascript keyup и field.value, вы должны получить 9X_vanilla-javascript текущее значение поля. Это не тот случай, когда 9X_javascript-library вы используете field.getAttribute ('value'), который 9X_div возвращает то, что находится в атрибуте 9X_webpage html (value = ""). Свойство представляет 9X_javascript то, что было введено в поле, и изменяется 9X_js по мере ввода, в то время как атрибут не 9X_html-dom изменяется автоматически (вы можете изменить 9X_html его с помощью метода field.setAttribute).

8
0

Ответ #4

Ответ на вопрос: Как получить новое значение ввода HTML после того, как нажатие клавиши изменило его?


    
        
    
    
        

Похоже, вы можете использовать onkeyup для 9X_html получения нового значения элемента управления 9X_javascript вводом HTML. Надеюсь, это поможет.

3
0

Ответ #5

Ответ на вопрос: Как получить новое значение ввода HTML после того, как нажатие клавиши изменило его?

Here - это таблица различных событий и уровней 9X_html-tag поддержки браузера. Вам нужно выбрать событие, которое 9X_vanillajs поддерживается, по крайней мере, всеми современными 9X_span браузерами.

Как видно из таблицы, события 9X_span keypress и change не имеют единой поддержки, тогда как 9X_div событие keyup имеет.

Также убедитесь, что вы прикрепили 9X_vanillajs обработчик событий с помощью кроссбраузерно 9X_span совместимого метода ...

1
0

Ответ #6

Ответ на вопрос: Как получить новое значение ввода HTML после того, как нажатие клавиши изменило его?

Вы можете попробовать этот код (требуется 9X_div jQuery):



    
    


    

1
0