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 回答