将文本插入textarea后功能发生变化

时间:2011-05-11 13:09:56

标签: javascript jquery

我的问题来自this topic。 我很难过,并且已经尝试了几个小时。 This fiddle显示在选择其中一个选项时插入文本区域的文本。

通过在textarea中键入一些单词,当我选择其他选项时,textarea的文本不会改变。没关系。但是当我删除这些单词时,整个功能都会以某种方式丢失。

如果它能帮助你理解我的意思并希望我写一个小的'测试计划',因为我绝对难过:

  1. 打开the fiddle
  2. 在textarea中的'Text'后输入'A'。
  3. 选择选项2 - >'TextA'停留在textarea
  4. 现在删除'TextA'
  5. 选择选项1 - >正如您所看到的那样,虽然我选择了选项1
  6. ,但textarea仍保持空白

    如何防止此行为? textarea增加的词应该一直保留。但如果没有添加,行为就不会改变。

    你有个主意吗?

1 个答案:

答案 0 :(得分:2)

html()是设置textarea内容的错误方法。请改用val()

原因是textarea从其开始和结束标记之间包含的文本中获取其初始值。其当前值始终存储在其value属性中。使用innerHTML(这是jQuery的html()方法所做的)更改textarea的子节点最初是有效的,但是一旦value属性被更改(通过脚本或用户编辑textarea) content),textarea的子节点与其值之间的链接被破坏。

以下是使用val()代替html()的jsFiddle的更新版本:http://jsfiddle.net/J4Rkt/5/

底线:永远不要使用html()来获取textarea的当前值。