2012-03-30 18 views
1

私のテキストエリアには、(\t)文字を使用したいと思います。ただし、TABキーは次のフォーム要素に循環します。これが期待されるので、私はその標準を破りたくはありません。同様に、CTRL + TABはブラウザのタブを循環させます。テキストエリア内に実際にTABを入力できるようにするための推奨キーコンボはありますか?JavaScriptを使用しているテキストエリアにタブを追加する

たとえば、CTRL + SPACEは何もしていないようですが、それを使用できますか?

また、これらのコンボを正しく聞くにはどうすればよいですか?

+0

これを試しましたか?しかし、真剣に、ユーザーとして、私はその行動が非常に迷惑なことがわかります。https://github.com/jeresig/jquery.hotkeysこの動作は、テキスト領域では「期待」ではありません。 –

+0

@KenThompson、それがポイントです。私はユーザーに影響を与えない未使用のコンボを見つけたいと思っています。 – Xeoncross

+1

ユーザーはTabキーを押して、テキスト領域のタブ(またはスペース)を入力すると考えます。それがあなたが達成しようとしているものなら、それのためのプラグインは必要ありません。伝播を防ぐだけです。 googleの "テキスト領域のタブを許可する"と答えが見つかります。 TABを別の要素に移動させようとしていたように、あなたの質問は妥当なものになりました。また、異なる組み合わせを使用する(そして暗記する)ことをユーザーに要求しません。それは私が迷惑をかけるものです。 –

答えて

10

これは私がフォーカスを切り替えからTABを維持するためにテキストエリアに使用したコードです:

$("textarea").keydown(function(e) { 
    var $this, end, start; 
    if (e.keyCode === 9) { 
    start = this.selectionStart; 
    end = this.selectionEnd; 
    $this = $(this); 
    $this.val($this.val().substring(0, start) + "\t" + $this.val().substring(end)); 
    this.selectionStart = this.selectionEnd = start + 1; 
    return false; 
    } 
}); 
+0

こんにちは、ケントンプソン、説明してください、あなたは 'this.selectionStartとは何ですか?とthis.selectionEnd; '??私はこの声明について少し混乱しています。 –

+0

これは基本的にカーソル位置を特定します(何も実際に選択されていないと仮定します)。 https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElementをご覧ください。 –

0

私はTabby jqueryプラグインを使用してこの機能をテキスト領域に追加しました。大丈夫です!

Tabby

はそれを使用すると、テキスト領域にタブを挿入するには、[Tab]キーを使用することができます。タブを変更する要素の機能は失われますが。

+0

ありがとうございますが、私はタブの機能を壊したくありません。私は、使用できる代替キーコンボが必要です。 – Xeoncross

1

あなたでし

  1. 使用すると、タブをエミュレートするために4つのスペースを言います。
  2. ユーザーに "\ t"文字を入力させ、それを解析対象のタブトークンとして扱わせます。
1

Tab Override(私自身のプロジェクト)は、テキストエリアのタブ機能を有効にし、カスタムキーの組み合わせも使用できます。このように、Tabキーは引き続き通常どおり使用できます。

関連する問題