如何从输入字段中检索JavaScript中输入的文本??
如何检索使用JavaScript输入的输入字段的内容 我知道。onChange只在焦点从输入字段更改后才起作用如何从输入字段中检索JavaScript中输入的文本??,javascript,Javascript,如何检索使用JavaScript输入的输入字段的内容 我知道。onChange只在焦点从输入字段更改后才起作用 谢谢您应该尝试onKeyUp事件。下面是一个简单的例子: <input type="text" onkeyup="document.getElementById('xyz').innerHTML=this.value"> <div id="xyz"></div> 如果您的输入字段有焦点,请使用onKeyUp事件监视用户键入的文本 编辑:自从写了这个
谢谢您应该尝试onKeyUp事件。下面是一个简单的例子:
<input type="text" onkeyup="document.getElementById('xyz').innerHTML=this.value">
<div id="xyz"></div>
如果您的输入字段有焦点,请使用onKeyUp事件监视用户键入的文本
编辑:自从写了这个答案后,我了解到HTML5
oninput
事件比关键事件更合适,因为它将检测所有形式的输入,包括粘贴、拖放等。除IE 8和更低版本外,所有主要浏览器都支持该事件,但是您可以通过映射到onpropertychange
来模拟IE中的事件。例如:
if ("onpropertychange" in myInput && !("oninput" in myInput)) {
myInput.onpropertychange = function () {
if (event.propertyName == "value")
myHandler.call(this, event);
}
}
else
myInput.oninput = myHandler;
请注意,onpropertychange
在使用contentEditable
属性集输入非表单元素时不会触发
onkeyup仅在键被提起后才会触发,因此为了获得最佳效果,请使用onkeypress和/或onkeydown。如果使用延时为0毫秒的计时器,则可以在更新后立即获取新值:
myInput.onkeydown = function () {
var self = this;
window.setTimeout(function () {
alert(self.value);
},0);
}
示例:
请注意,这不会捕获粘贴或拖放文本到框中。对于那些需要其他事件的事件。曾经我使用了“onKeyup”、“onBlur”、onKeyPress组合来处理所有情况,同时制作了一个只允许数字值的文本框。像这样:
//C#
tc.Attributes.Add("onKeyup", "extractNumber(this,-1,true);"); tc.Attributes.Add("onBlur", "extractNumber(this,-1,true,true);"); tc.Attributes.Add("onKeyPress", "return blockNonNumbers(this, event, true, true);");
使用此.js代码:
而且它仍然工作得很好。onkeyup只会在钥匙被提起时提供值。按住键将重复输入,但不会触发keyup事件。@Andy E:是的,但如果只使用onkeydown,则从文本字段返回的值将不完整。我的意思是最后输入的字符将始终丢失。如果使用计时器,则不会。请参阅我的答案和其中的示例。一旦焦点超出文本框控件,onblur事件将触发。您可以在ContextChanged中处理它event@Mo当前位置我今天发表了一篇关于这个主题的博客文章,可能对你来说是一篇有趣的文章-