按下 Tab 键时替换输入文本(Chrome 扩展名)

Replacing input text when tab is pressed ( Chrome Extension )

所以基本上我想做的是确定输入栏是否输入了 "y",当按下 tab 键时将 y 替换为 "youtube "。

Javascript

var input = document.getElementById('searchbar').value;
var words = input.split(" ");

$("#searchbar").keydown(function(e) {
if(e.keyCode == 9) {
    e.preventDefault();
    if(input == 'y') {
        $('#searchbar').text('youtube');
    }
}
});

目前我没有收到任何错误消息,只是无法正常工作。 Tab 键还会将焦点从输入栏移开。

原因如下

  1. 您应该在 keydown 上获取值,而不是在页面加载时获取值,因为在加载页面时值是空的。
  2. 在使用 jquery 时,使用 jquery facade/selector
  3. 获取输入的当前值
  4. 最后你更新了输入框的值而不是文本

试试这个

    $("#searchbar").keydown(function(e) {
      var input = $('#searchbar').val();
      var words = input.split(" ");

     if(e.keyCode == 9) {
      if(input == 'y') {
        $('#searchbar').val('youtube');
      }
      e.preventDefault();
    }
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Enter Search Term
<input type="text" id="searchbar">