将文本插入文本区域后,功能会发生变化

functionality changes after inserting text to textarea

本文关键字:变化 功能 文本 插入文本 区域      更新时间:2023-09-26

我的问题源于这个话题。我被难住了,已经尝试了几个小时。此小提琴显示一个文本,当选择其中一个选项时,该文本将插入到文本区域。

通过在文本区域中键入一些单词,当我选择另一个选项时,文本区域的文本不会更改。没关系。但是当我删除单词时,整个功能不知何故丢失了。

如果它能帮助你理解我的意思和想要的东西,我会写一个小的"测试计划",因为我绝对被难住了:

  1. 打开小提琴
  2. 在文本
  3. 区域中的"文本"之后键入"A"。
  4. 选择选项 2->"文本A"保留在文本区域中
  5. 现在删除"文本 A"
  6. 选择选项1->如您所见,尽管我选择了选项 1,但文本区域仍为空

如何防止这种行为?添加到文本区域的单词应始终保留。但是,如果没有添加,则行为不会改变。

你有想法吗?

html()

设置文本区域内容的错误方法。请改用val()

这样做的原因是文本区域从其开始和结束标记之间的文本中获取其初始值。其当前值始终存储在其 value 属性中。使用 innerHTML 更改 textarea 的子节点(jQuery 的 html() 方法就是这样做的)最初是有效的,但是一旦更改了 value 属性(通过脚本或由编辑文本区域内容的用户),文本区域的子节点与其值之间的链接就会断开。

这是使用val()而不是html()的jsFiddle的更新版本 http://jsfiddle.net/J4Rkt/5/:

底线:切勿使用 html() 来获取文本区域的当前值。