MTAppTabSpace

textarea で Tab キーを押したときに文字列(既定は半角スペース4つ)を挿入する jQuery プラグイン。Tab のフォーカス移動を抑止し字下げにできる。選択範囲があれば置換する。

textarea(や input)で Tab キーを押したときに、文字列(既定は半角スペース 4 つ)を挿入する jQuery プラグインです。コードやインデント付きのテキストを入力する欄で、Tab がフォーカス移動ではなく字下げになるようにしたいときに使います。

構文

$(selector).MTAppTabSpace(options);

$.fn プラグイン(対象の textarea / input に対して呼び出します)です。

パラメータ

options {Object} — 省略可。以下のプロパティを持ちます。

プロパティ既定値説明
textstring' '(半角スペース 4 つ)Tab キー押下時にキャレット位置へ挿入する文字列

戻り値

{jQuery} — 対象要素(チェーン可能)。

保存される値

テキストエリアの本文がそのまま保存されます。Tab キーで挿入されるのはタブ文字ではなく text オプションの文字列(既定は半角スペース 4 つ)で、それを含んだテキストが保存されます。

使用例

// Tab で半角スペース 4 つを挿入(既定)
$('#customfield_code').MTAppTabSpace();

// Tab でタブ文字を挿入
$('#customfield_code').MTAppTabSpace({ text: '\t' });

user.js での記述例

user.js(「デザイン → user.js を編集」)に書く場合は、mtappVars.screen_id で画面を判定して呼び出します。

(function ($) {
    if (typeof mtappVars !== 'object') return;
    if (mtappVars.screen_id === 'edit-entry') {
        $('#customfield_code').MTAppTabSpace();
    }
})(jQuery);

補足

  • Tab キーの既定の動作(次の要素へフォーカス移動)は抑止され、代わりに text が挿入されます。
  • 文字列はキャレット位置に挿入されます。テキストを選択している場合は、その選択範囲が text で置き換わります。挿入後はキャレットが挿入文字列の直後へ移動します。

関連

  • MTAppLineBreakField — 改行区切りのテキストを行ごとの入力欄にする。
  • MTAppJSONTabletextarea の JSON を表形式の入力 UI で編集する。