JSFiddle - React, Tailwind, and code Playground

by sstur

HTML

<input type="text" name="test1" /><br/>
<textarea id="textbox" name="test2"></textarea><br/>
<input type="text" name="test3" /><br/>

JavaScript

$(document).on('keydown', '#textbox', function(e) { 
  var keyCode = e.keyCode || e.which;
  var tabChars = '  ';

  if (keyCode == 9) { 
    e.preventDefault(); 
    var start = this.selectionStart;
    var end = this.selectionEnd;

    // set textarea value to: text before caret + tab + text after
    $(this).val($(this).val().substring(0, start)
                + tabChars
                + $(this).val().substring(end));

    // put caret at right position again
    this.selectionStart = 
    this.selectionEnd = start + tabChars.length;
  } 
});