4

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>
4

1 に答える 1

2

イベントを偽造してブラウザのdefault-event-actionsを駆動しようとするのは良い考えではありません。それができる限り、それはブラウザ固有であり、信頼性がありません。

フィールドに文字「t」を追加する場合は、次のように言います。

q.value+= 't';

現在のカーソル位置に文字を挿入する場合など、より複雑なケースでは、document.selection(IE)とfield.selectionStart/End(その他)の分岐コードが必要です。

于 2009-10-13T18:15:46.770 に答える