【问题标题】:How to replace text in textarea element using javascript? [duplicate]如何使用javascript替换textarea元素中的文本? [复制]
【发布时间】:2018-07-07 23:35:08
【问题描述】:

我遇到了一段代码问题,该代码段应该使用正则表达式从元素中删除所有空格,然后更改文档元素的内容。

所以问题是文本必须位于源代码中的 textarea 标记之间,以便它适用于 Firefox 和 chrome。

函数执行后,我尝试为 Firefox 和 chrome 输入测试语句,但它不再起作用。


所以总结一下..它可以在 Firefox 和 chrome 中工作一次,但前提是文本已经在源代码中。我已经看到它在 Internet Explorer 和 Microsoft Edge 中完美运行。不过我更喜欢 Firefox,所以我非常感谢有人指出问题所在。

这是代码:

function removeSpaces() {
  var str = document.getElementById("contents").innerHTML;
  while (str.search(/\s/img) > -1) {
    var txt = str.replace(/\s/img, "");
    document.getElementById("contents").innerHTML = txt;
    str = document.getElementById("contents").innerHTML;
  }
}
<html>

<body>
  <textarea id="contents" rows="5" cols="20">
    This is a sentence.
    This is another sentence.
    Hello everyone.
    </textarea>

  <p>Click button to remove spaces.</p>

  <button type="button" onclick="removeSpaces()">Try it</button>

  <script>
    /* js function */
  </script>
</body>

</html>


Here is the Tryit Editor for W3Schools

【问题讨论】:

    标签: javascript html css regex function


    【解决方案1】:

    您的问题可能与浏览器的关系不大,而与用户对该字段的修改有关。

    textarea 的innerHTML 是它的默认 值。使用value 获取和修改其当前值。

    您几乎不应该触摸文本区域的innerHTML。请改用value 属性。

    【讨论】:

    • 我应该把它们都放到 .value 中吗?
    • @pditf4me — 我就是这么说的
    • 效果很好。在 Tryit 编辑器中并没有那么多,而是使用新属性打开 html 文件。当它允许我时,我会将其标记为已回答。感谢您的反馈。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    • 2015-10-30
    • 2010-10-25
    相关资源
    最近更新 更多