浏览器之间的文本区域更新方式不同

Textarea not updating the same way between browsers

本文关键字:更新 方式不 区域 文本 之间 浏览器      更新时间:2023-09-26

我有一个文本区域,我正试图使用jQuery进行更新,但我发现,根据我使用的浏览器,我会得到不同的结果。

看看这个:https://jsfiddle.net/JBookham/mwaa6z2f/4/

我正在使用$('#txtArea').html("Example text");来更新显示的文本。这在最初是有效的,直到我尝试在文本区域键入一些内容。在Chrome中执行此操作后,.html()将停止更新文本区域的值。我已经通过JavaScript进行了调试,可以看到文本区域的innerHtml正在更新,但没有更新值。我试着在Edge和innerHtml中做同样的事情,值会按预期更新。

我的问题是,有人知道为什么会发生这种情况,或者知道我可以在浏览器之间以同样的方式工作的方法吗?

感谢

更新
.val()确实以相同的方式在浏览器之间更新文本区域,但它没有提供我想要的功能。然而,这个答案有一种方法,我可以使用.val(),并且仍然能够解码我传递的文本,如下所示:
var decoded = $("<textarea/>").html("other text &amp;").val(); $('#txtArea').val(decoded);
这感觉有点粗糙,好像应该有更好的方法,但至少目前它给了我一些在浏览器之间以相同方式工作的东西。

您应该使用.val()来执行此操作。

https://jsfiddle.net/mwaa6z2f/7/