2

我在 contenteditable div 中有一个文本编辑器。

我需要更改 [TAB] 行为以插入空格或 \t 而不是关注下一个元素,这是默认浏览器行为。

我有一个像这样的事件处理程序:

function keyDown(e) {
    // press tab.
    if (e.keyCode == 9) {
        e.preventDefault();
        return;
    }
}

这导致不会失去对 div 的关注,我现在只需要在光标位置插入 [TAB] 或空格。

如何才能做到这一点?

4

1 回答 1

2

这可以解决问题:http: //jsfiddle.net/eFLGZ/

$('textarea').keydown(keyDown);

function keyDown(e) {

    // press tab.
    if (e.keyCode == 9) {
        e.preventDefault();

        // Insert a space.
        var txt = $('textarea').val();
        $('textarea').val(txt + ' ');

        return;
    }
}

请参阅此处了解如何输入当前放置光标的文本。

于 2012-08-30T07:37:23.310 回答