在 textarea 中使用内联建议自动完成

autocomplete with inline suggestion in textarea

我的项目有一个文本区域

<textarea class="FormControl Composer-flexible TextEditor-editor" placeholder="message..." style="height: 189px;"></textarea>

我来这里是想问一下是否有一种方法可以在 textarea 本身的建议中自动完成。例如,如果我开始写“这里”,我想看到建议“建议来了”,如果我按 TAB 键或其他键,我可以 select 建议。

有一种方法可以做到这一点 javascript?

是这样的吗?

注意我的代码区分大小写

const texts = ["Here comes the suggestion", "Another suggestion"]

document.getElementById("editor").addEventListener("keydown", function(e) {
  console.log(e.key, e.target.value)
  if (e.key === "Tab") {
    const val = this.value;
    texts.forEach(text => {
      if (text.startsWith(val)) this.value = text;
    })
  }
})
<textarea id="editor" class="FormControl Composer-flexible TextEditor-editor" placeholder="message..." style="height: 189px;"></textarea>

你可以试试这个。

const suggestions = [
                      "Here comes the suggestions", 
                      "I like pizza", 
                      "I'm a good programmer"
                    ]

var textarea = document.getElementById('textarea')

textarea.addEventListener('keyup', (e) => {
  var result = suggestions.filter(el => el.startsWith(textarea.value))
  console.log(result)
})
    <textarea class="FormControl Composer-flexible TextEditor-editor" id="textarea" placeholder="message..." style="height: 189px;"></textarea>

将结果放入框中。