2012-06-23 22 views
3

我需要在單擊某個選項卡時將選項卡插入到textarea中,而不是將焦點移至下一個元素。textarea中的Handle選項卡

我已經做了一些研究,但沒有找到實際使用tab而不是一系列空格的解決方案。

我該怎麼做,如何插入一個真正的選項卡,而不是4個空格?

+0

可能重複[Tab中的文本區域內沒有更改焦點,jQuery](http://stackoverflow.com/questions/4379535/tab-within-a-text-area-without-changing-focus-jquery) –

回答

3

jsFiddle example

的JavaScript:

function insertTab(o, e) { 
    var kC = e.keyCode ? e.keyCode : e.charCode ? e.charCode : e.which; 
    if (kC == 9 && !e.shiftKey && !e.ctrlKey && !e.altKey) { 
     var oS = o.scrollTop; 
     if (o.setSelectionRange) { 
      var sS = o.selectionStart; 
      var sE = o.selectionEnd; 
      o.value = o.value.substring(0, sS) + "\t" + o.value.substr(sE); 
      o.setSelectionRange(sS + 1, sS + 1); 
      o.focus(); 
     } 
     else if (o.createTextRange) { 
      document.selection.createRange().text = "\t"; 
      e.returnValue = false; 
     } 
     o.scrollTop = oS; 
     if (e.preventDefault) { 
      e.preventDefault(); 
     } 
     return false; 
    } 
    return true; 
}​ 

撕開沒有羞恥here

+0

+1! Fast-Simple-Accurate..with禮貌...... :) – Asif

+0

是獲得製表符所需的所有代碼嗎?編輯:nevermind,我忘了所有與這樣的功能附帶突出顯示的文本行李。 – jbabey

1

無論代碼說要添加這四個空格,用文本製表符替換四個空格,還是使用轉義序列\t

相關問題