2010-07-04 69 views
3

是否可以在textarea中使用JavaScript來使用「製表符」(縮進)。當點擊標籤按鈕時,下一個表單元素被聚焦。但是,我需要在textarea中縮進文本。在textarea字段中使用「製表符」

我目前在一個項目中工作,任何與JavaScript或jQuery的代碼將幫助我。

+2

有很多腳本可以做到這一點,但我會謹慎使用它們。這是[one](http://www.webdeveloper.com/forum/showthread.php?t=32317),以及[另一個](http://ajaxian.com/archives/handling-tabs-in-textareas) 。 – Mike 2010-07-04 15:44:52

+0

@Mike你爲什麼要謹慎? – chromedude 2010-11-03 22:15:50

+0

@chromedude:我會保持謹慎,因爲使用Tab鍵在文本區域生成縮進將覆蓋大多數瀏覽器中的Tab鍵的常規功能,即將焦點移至下一個字段或鏈接。因此可能會導致無障礙問題。 – Mike 2010-11-08 08:39:12

回答

5

我見過的最好的插件是Tabs in Textarea plugin。您可以嘗試演示on its page

的設置是相當簡單的,因爲它有一個簡單的效果

$("textarea").tabby(); 

的事情,最讓我惱火其他插件是缺乏轉變 + 標籤,此處理的。你可以這樣做沒有一個插件,但我不會在這種情況下......它是自己的一些代碼,這取決於你以後的功能。跨瀏覽器的TextRange操作在封面上仍然有點兒毛病,這是插件是更好的方法之一,IMO。

+0

太棒了,尼克;當有人通過跨瀏覽器支持很好地解決了問題時,讓我們利用它吧! – 2011-01-07 00:14:12

+1

提供的鏈接不再有效。來源和文件現在可以在這裏找到https://github.com/alanhogan/Tabby – 2012-11-04 11:48:39

0

試試這個:捕獲按鍵事件中的tab鍵並停止傳播。我不確定這是否會在瀏覽器中一致工作;試一試!

1

什麼是這樣的:

<input onkeypress="if(event.keyCode == 9) { this.value += ' '; return false; }"> 

基本上,當你按下鍵代碼9(這是Tab鍵),我返回false。這可以防止聚焦頁面上的其他元素。

爲了模仿Tab空格,我只是將自己的空間添加到輸入本身的值中。

+0

如果插入符號位於textarea的末尾,那麼這隻會顯而易見。 – 2010-07-04 16:08:20

相關問題