0

次のようなhtmlフォームがあります。

<form id="boxy" action="layout.html" method="get" accept-charset="utf-8">
  <input type="text" id="a" onkeypress="Boxy.Check(this);">
</form>

次のように JavaScript を呼び出します。

Boxy.Check = function() {
    input = document.getElementById(this.currentSelector.id).value;
    console.log("\"" + input + "\"");
};

ただし、this.valueは前の値onkeypressです。

たとえば、フォームに「A」と入力すると、console.log()「」が出力されます。「AA」と入力すると、console.log「A」が出力されます。

入力の現在の内容を取得する方法はありますか?

4

2 に答える 2

1

onkeyup を使用する必要があると思います。

var KeyID = (window.event) ? event.keyCode : e.keyCode;

KeyID の値は次のとおりです。

> 16 (Shift)
> 17 (Ctrl)
> 18 (Alt)
> 19 (Pause)
> 37 (Left)
> 38 (Up)
> 39 (Right)
> 40 (Down)

このようにして、そのようなキーが押されたかどうかを確認できます。

テストされていませんが、これは機能するはずです。何かが正常に機能しない場合はお知らせください。

編集: クロスブラウザーのサポートを追加

于 2010-12-26T01:44:00.983 に答える
0

getElementById を使用してみてください

<input type="text" id="a" onkeyup="Boxy.Check();">

Boxy.Check = function() {
    input = document.getElementById(
        document.getElementById('a').currentSelector.id
    ).value;
    console.log("\"" + input + "\"");
};

unkeyup で PeeHaa のアドバイスを使用する

于 2010-12-26T01:45:04.870 に答える