如何将文本添加到带 javascript 的文本区域,但之后仍然可以输入?

how to add text to textarea w/ javascript but still be able to type in it afterwards?

我正在尝试向 javascript 中的文本区域添加文本,但是,在您将其标记为重复之前,它不允许我在输入任何内容后在文本区域中添加更多文本还有其他的。

var f1t = true;

var foo = function() {
  if (f1t === true) {
    document.getElementById("textarea").innerHTML += "<i:>"
    f1t = false
  } else {
    document.getElementById("textarea").innerHTML += "<:>"
    f1t = true
  }
}
<textarea id="textarea"></textarea> <button onclick="foo();">+</button>

当此代码为 运行 时,它会在文本区域内放置任意多的内容,直到我输入内容为止。然后,当函数被调用时,它不会在 textarea 中放置任何东西,也不会抛出任何错误。我希望即使在我输入内容后也能继续向文本区域添加文本。

文本区域的 innerHTML 描述了它的默认值,而不是它的当前值。一旦用户键入某些内容,它的默认值就无关紧要了(除非你有一个重置按钮)。

改为设置 value 属性。

使用 .value 而不是 .innerHTML

var f1t = true,
    foo = function() {
      document.getElementById("textarea").value += f1t ? "<i:>" : "<:>";
      f1t = !f1t;
    };
<textarea id="textarea"></textarea> <button onclick="foo();">+</button>