javascript onkeypressed 不给出当前文本框内容
我有一个像这样的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”。
有没有办法获取当前输入的内容?
I have an html form like this:
<form id="boxy" action="layout.html" method="get" accept-charset="utf-8">
<input type="text" id="a" onkeypress="Boxy.Check(this);">
</form>
Invoking javascript like this:
Boxy.Check = function() {
input = document.getElementById(this.currentSelector.id).value;
console.log("\"" + input + "\"");
};
However, this.value
is the previous value before onkeypress
.
For example, if I just type "A" into the form, console.log()
prints "". And if I type "AA", console.log
prints "A".
Is there a way to get the current content of the input?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我认为你需要使用onkeyup。
var KeyID = (window.event) ? event.keyCode : e.keyCode;
KeyID 的值为:
这样您可以检查是否按下了该键。
未经测试,但这应该有效。如果某些功能无法正常工作,请告诉我。
编辑:添加了跨浏览器支持
I think you need to use onkeyup.
var KeyID = (window.event) ? event.keyCode : e.keyCode;
values for KeyID are:
This way you can check whether such a key is pressed.
Untested but this should work. Please let me know if something doesn't work as it should.
EDIT: Added cross-browser support
尝试使用 getElementById
并使用 PeeHaa 的建议和 unkeyup
Try using getElementById
using PeeHaa's advice with unkeyup