onpropertychange обнаруживает действие пользователя - PullRequest
0 голосов
/ 14 февраля 2012

Чтобы обнаружить изменения в текстовом поле, я должен использовать «onpropertychange» в IE («oninput» для других) «onpropertychange» действует так же, как «oninput», но он также запускается не пользовательским поведением.Есть ли способ найти, запускается ли onpropertychange действием пользователя (перечислены ниже)

  • ввод с клавиатуры
  • вырезать
  • удалять
  • вставить
  • , выбранный из выпадающего списка

1 Ответ

2 голосов
/ 14 февраля 2012

Нет.Лучше всего использовать функцию-обертку для изменения значения вашего текстового поля.

[РЕДАКТИРОВАТЬ: это можно сделать в IE 8 и выше, используя методы получения и установки.См. Комментарий @ AndyE]

Демонстрация в реальном времени (только для IE): http://jsfiddle.net/4C6KL/

Код:

var textBox = document.getElementById("foo");
var changingValue = false;

textBox.onpropertychange = function() {
    if (window.event.propertyName == "value" && !changingValue) {
        // Do stuff here
    }
};

function setTextBoxValue(val) {
    changingValue = true;
    textBox.value = val;
    changingValue = false;
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...