2012-11-29 25 views
0

我有一个keydown事件。我可以从中取出keyCode。 我希望先使用event.preventDefault防止默认值,然后在进行一些条件检查后,将与键码相对应的字符打印回光标实际所在的位置。需要打印的字符在keydown事件中收到

我想我可以使用

var character = String.fromCharCode(e.charCode); 

retreive正确的字符,但如何打印回iframe的身体也考虑到我可能需要插入此字符的事实已经存在的文本,而不会干扰光标位置

+0

我想,你应该只在你有那些特殊情况下执行'preventDefault'。使用preventDefault然后再插入文本会使问题复杂化。没有可靠的方法从keyCode中获取确切的字符,因为它因不同的浏览器和不同的键盘类型而异。请参阅http://stackoverflow.com/a/13127566/297641回答以获取解决方法。 –

回答

0

只有在您拥有的特殊条件下,您才应该执行preventDefault。使用preventDefault然后再插入字符会使问题变得复杂(插入位置,插入字符,然后设置插入位置)。

我不认为有一个可靠的方法从keyCode中获取确切的字符,因为它因不同的浏览器和不同的键盘类型而异。

请检查此https://stackoverflow.com/a/13127566/297641答案以获得解决方法。

+0

如果获得该字段的当前值,然后将其与setTimeout内的值进行比较并延迟0ms,则可能可以可靠地获取确切的字符。你只需要考虑复制/粘贴,退格,箭头键,转义,制表符等等的可能性。 –

+0

@KevinB我们如何从'e.which' **中可靠地获取当前值'onkeydown' **? –

+0

我不认为你可以。 –

相关问题