在文本输入字段上模拟退格键

时间:2012-08-20 14:01:54

标签: javascript html

有人可以提供一个很好的示例来模拟<INPUT>文本字段中的退格键吗?

我需要这个用HTML5完成的虚拟键盘,它只需要在 Webkit 浏览器中工作。

备注:

  • createEvent / initTextEvent / dispatchEvent与charcode 8(退格键)被忽略(这似乎仅适用于可打印的字符)
  • 使用value类型的工作手动更改 substr() ,但这样插入符号移动到输入字段的末尾(我希望能够删除输入字段中间的字符,就像使用普通键盘时一样。)

2 个答案:

答案 0 :(得分:4)

好的,你去:http://jsfiddle.net/dan_barzilay/WWAh7/2/

如果您需要更多解释注释,则使用get caret函数来了解删除字符的位置。 复位光标功能用于在退回后恢复插入位置。

**它使用的是jquery,但你可以将它改为正常的js in secounds

答案 1 :(得分:1)

编辑:下面的内容太复杂了。根据 https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand, 它只需拨打False即可。

以下是使用document.execCommand("delete");的解决方案,该解决方案适用于Chrome: https://github.com/gdh1995/vimium-plus/blob/master/lib/dom_utils.js#L169

setSelectionRange

嗯,唯一的不足是我们无法撤消它所做的改变。

添加:我找到了一种启用撤消功能的方法重做: 在Javascript textarea undo redo中,两个导师在Chrome上运行良好