2011-10-11 119 views
0

我想找到一种方法来获取多个字符粘贴在HTML文本字段(输入类型=文本),使用onkeydown或onkeypress,我不是感兴趣的onkeyup(它的工作原理),所以请不要建议我这个解决方案。另外我对Jquery不感兴趣,我不喜欢使用它。我需要解决方案来处理所有浏览器。如何使用onkeydown捕获字符串之前,它接收的文本字段

我能够做到这一点,如果您键入一个字符,通过采取事件的字符,但直到现在我无法从粘贴(ctrl + V)或鼠标得到一组字符。

您可以查看Facebook搜索菜单,显示自动完成结果,它适用于事件:onkeydown和onkeypress,并且您注意到在释放手指之前得到结果,尝试粘贴某些东西(多个字符)和你在释放手指之前得到结果,怎么样? Onkeypress和onkeydown不会显示您粘贴或键入的第一件东西,因为它们发生在将文本添加到文本字段之前。

如果你想了解什么,我希望有更多的,请检查下面我的代码:

<input type="text" id="targetTextField" onkeydown="CapturePastedString(this.id)" /> 



<script> 
function CapturePastedString(id){ 

var targetTextField=document.getElementById(id); 

// below I need to capture the pasted string like: 
var pasted_string= function(){.....} 

targetTextField.value=pasted_string; 

} 
</script> 

任何帮助将是非常感激的,因为长时间以来我尝试,但无法找到解决办法呢。

+0

查看[onpaste事件](http://help.dottoro.com/ljuimtmq.php) – malificent

+0

但它不兼容所有浏览器:(它不可能是一个解决方案。 。我已经检查过了,有谁可以告诉我这个问题的秘密吗?我经过百个小时的搜索并呼吁开发者,我真的找不到解决方案吗?!!! – moderns

+0

有什么建议吗?难道我无法得到答案对于这个问题,从1年开始?!! – moderns

回答

0

尝试使用onkeydown处理程序。您可以从那里获取keyCode,然后获取密钥。

<input type="text" value="" onkeydown="alert(String.fromCharCode(event.keyCode));"/>

注意,由于键盘上的所有字符的资本也将得到大写字母。上面的代码会显示按键

相关问题