Принудительное событие клавиатуры JavaScript внутри текстовой области в IE - PullRequest
4 голосов
/ 13 октября 2009

Я пытаюсь принудительно нажать клавишу внутри текстового поля, используя JavaScript. Это должно работать конкретно на IE, но просто не работает.

Кто-нибудь может мне помочь?

Вот мой тестовый скрипт:

<html>
  <body>
  <input type="text" id="txtfld">
  <input type="button" onclick="go()">
  <script>
    function go() {
      var q = document.getElementById('txtfld');
      q.style.backgroundColor='yellow'; 
      q.focus();

      var evObj = document.createEventObject();
      evObj.keyCode = 84; // [T] key
      q.fireEvent('onkeypress', evObj);
    }
  </script>
  </body>
</html>

Заранее спасибо!

1 Ответ

2 голосов
/ 13 октября 2009

Не стоит пытаться управлять действиями по умолчанию для событий в браузерах путем фальсификации событий. Насколько это возможно, это зависит от браузера и ненадежно.

Если вы хотите добавить букву «t» в поле, скажите так:

q.value+= 't';

В более сложных случаях, например, если вы хотите вставить букву в текущей позиции курсора, вам нужен код перехода для document.selection (IE) и field.selectionStart/End (другие).

...