如何从输入字段中检索文本,因为它在JavaScript中输入?

时间:2010-09-08 12:01:23

标签: javascript

如何使用JavaScript输入输入字段的内容?

我知道.onChange仅在输入字段更改焦点后才有效吗?

谢谢

4 个答案:

答案 0 :(得分:10)

编辑:自从写完这个答案以来,我了解到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);
} 

示例:http://jsfiddle.net/fgcYD/

请注意,这不会抓住粘贴或将文本拖放到框中。对于那些你需要其他活动的人。

答案 1 :(得分:2)

您应该尝试onKeyUp事件。这是一个简单的例子:

<input type="text" onkeyup="document.getElementById('xyz').innerHTML=this.value">
<div id="xyz"></div>

答案 2 :(得分:1)

如果输入字段具有焦点,请使用onKeyUp事件监视用户输入文本。

http://www.w3schools.com/jsref/event_onkeyup.asp

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

它仍然运作良好。