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 に答える