Edit in JSFiddle

var toTranslit = function(text) {
  return text.replace(/([а-яё])|([\s_-])|([^a-z\d])/gi,
    function(all, ch, space, words, i) {
      if (space || words) {
        return space ? '-' : '';
      }
      var code = ch.charCodeAt(0),
        index = code == 1025 || code == 1105 ? 0 :
        code > 1071 ? code - 1071 : code - 1039,
        t = ['yo', 'a', 'b', 'v', 'g', 'd', 'e', 'zh',
          'z', 'i', 'y', 'k', 'l', 'm', 'n', 'o', 'p',
          'r', 's', 't', 'u', 'f', 'h', 'c', 'ch', 'sh',
          'shch', '', 'y', '', 'e', 'yu', 'ya'
        ];
      return t[index];
    }).toLowerCase();
};


$(document).ready(function() {
  $("#input").on("keyup", function() {
    $("#out").text(toTranslit($("#input").val()));
  });
});
<body>
  <input type="text" id="input" placeholder="Enter some title" autofocus>
  <div id="out"></div>
</body>
body{ padding: 10px }
input{ width: 100% }
div{ min-width:100%; margin: 20px 0 0 0; border: 1px dotted #ccc; }