javascript onkeypressed未提供当前文本框内容
我有这样一个html表单:javascript onkeypressed未提供当前文本框内容,javascript,onkeypress,Javascript,Onkeypress,我有这样一个html表单: <form id="boxy" action="layout.html" method="get" accept-charset="utf-8"> <input type="text" id="a" onkeypress="Boxy.Check(this);"> </form> Boxy.Check = function() { input = document.getElementById(this.currentS
<form id="boxy" action="layout.html" method="get" accept-charset="utf-8">
<input type="text" id="a" onkeypress="Boxy.Check(this);">
</form>
Boxy.Check = function() {
input = document.getElementById(this.currentSelector.id).value;
console.log("\"" + input + "\"");
};
但是,此.value
是onkeypress
之前的值
例如,如果我只是在表单中键入“A”,则console.log()
prints”“。如果我输入“AA”,console.log将打印“A”
有没有办法获取输入的当前内容?我认为您需要使用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)
这样,您可以检查是否按下了此键
未经测试,但这应该有效。如果有什么东西不能正常工作,请告诉我
编辑:添加了跨浏览器支持尝试使用getElementById
<input type="text" id="a" onkeyup="Boxy.Check();">
Boxy.Check = function() {
input = document.getElementById(
document.getElementById('a').currentSelector.id
).value;
console.log("\"" + input + "\"");
};
Check=function(){
输入=document.getElementById(
document.getElementById('a').currentSelector.id
).价值;
console.log(“\”+输入+“\”);
};
将PeeHaa的建议与unkeyup一起使用这是有效的,但在按下任何键时都会发生,而不仅仅是在输入字符时。我认为您可能需要检查按下了哪个键以防止出现这种情况。我将更新我的帖子。这不会改变行为。我需要使用
this.currentSelector.id
,因为此代码用于多个表单。