2014-09-01 34 views
0

我有一個textarea,我想在用戶按Tab鍵時添加一個製表符「\ t」。 我當前的代碼是:製表符分隔符在Chrome textarea中不起作用 - Javascript

textarea.onkeydown = function (e) { 
    var key = (e.keyCode || e.which); 
    if (key == 9) { 
    (e.preventDefault ? e.preventDefault() : e.stopPropogation()); 
    var s = this.selectionStart; 
    var end = this.selectionEnd; 
    this.value = this.value.substring(0, s) + "\t" + this.value.substring(end); 
    this.selectionStart = end + 1; 
    } 
}; 

它在Firefox正常工作,在IE瀏覽器的文本到處移動,而tab鍵舉行,但它增加了一個標籤,但是在Chrome中什麼也沒有發生。我查看了開發人員工具中的value屬性,並且看到了選項卡,但它們不顯示在textarea中,我無法選擇或將光標移到它們上面。

+1

它工作正常,我http://jsbin.com/zoretefupika/1/edit – 2014-09-01 17:26:02

+0

@VasilVanchuk的JSBin爲我工作爲好,我的textarea的CSS或字體可以如何影響它? – Joel 2014-09-01 17:55:38

+0

也許吧。你可以在jsbin上展示你的案例嗎? – 2014-09-01 18:11:09

回答

0

在你的代碼 - 刪除

> white-space: nowrap; 

爲textarea的

http://jsbin.com/tacagavawuwa/9/空白

NOWRAP序列將摺疊成一個單一的空白。 文字永遠不會換行到下一行。該文本在同一 線繼續直到
標籤遇到 http://www.w3schools.com/cssref/pr_text_white-space.asp

+0

有沒有辦法讓瀏覽器不會崩潰空白,但不能將文本換行到新行? – Joel 2014-09-01 20:27:25

+1

沒關係<紋理wrap =「off」>是我真正想要的 – Joel 2014-09-01 20:34:04