2012-08-30 53 views
2

我在contenteditable div中有一個文本編輯器。更改javascript中的tab鍵行爲

我需要將[TAB]行爲更改爲插入空格或\ t,而不是專注於默認瀏覽器行爲的下一個元素。

我有一個事件處理程序,像這樣:

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

導致的DIV不失去焦點,所有我現在需要的是在光標位置插入[TAB]或空格。

這怎麼辦?

回答

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; 
    } 
} 

here如何進入光標所在當前所處的文本。

+2

這將在文本末尾添加空格,但是如果在textarea中間進行了im編輯呢? – Israhack