如何使用JavaScript输入输入字段的内容?
我知道.onChange仅在输入字段更改焦点后才有效吗?
谢谢
答案 0 :(得分:10)
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);
}
请注意,这不会抓住粘贴或将文本拖放到框中。对于那些你需要其他活动的人。
答案 1 :(得分:2)
您应该尝试onKeyUp事件。这是一个简单的例子:
<input type="text" onkeyup="document.getElementById('xyz').innerHTML=this.value">
<div id="xyz"></div>
答案 2 :(得分:1)
如果输入字段具有焦点,请使用onKeyUp事件监视用户输入文本。
答案 3 :(得分:1)
一旦我使用了“onKeyup”,“onBlur”,onKeyPress的组合来处理所有情况,同时使TextBox只允许数值。像这样:
//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代码: http://www.mredkj.com/tutorials/validate2.js
它仍然运作良好。