即使在手动更新 TEXTAREA 值后如何强制 jQuery.text() 工作? [复制]

Posted

技术标签:

【中文标题】即使在手动更新 TEXTAREA 值后如何强制 jQuery.text() 工作? [复制]【英文标题】:How to force jQuery.text() working even after manual updating the TEXTAREA value? [duplicate] 【发布时间】:2018-05-21 21:38:53 【问题描述】:

我刚刚注意到,如果没有手动更新,jQuery text(...) 方法只会设置 TEXTAREA 的内容。例如(也在jsFiddle):

$('#myButton').click(function() 
   $('#myText').text(Date.now); 
);
<textarea id="myText"></textarea>
<button id="myButton">Go!</button>

<script src="//code.jquery.com/jquery-2.1.0.js"></script>

现在,当我单击 Go! 时,TEXTAREA 的内容将更新为当前时间戳。我也可以做多次。在职的。但是,如果我手动更改文本(例如通过删除或添加字符),它将停止工作。

我还尝试了val(...) 方法。无论文本字段上的手动更改如何,它都能按预期工作。

如何在手动更改后让jQuery.text(...) 工作?

【问题讨论】:

您是否有理由需要在这里使用.text() 而不是.val() “我也尝试了 val(...) 方法。它按预期工作,无论文本字段上的手动更改如何。” 那你为什么使用@ 987654334@? 类似问题已在此处得到解答***.com/questions/1927593/… @j08691 .val(...) 用于value 属性。 TEXTAREA 有一个内部文本。所以使用.text(...) 是有意义的,我只是想知道,为什么它不能正常工作或/以及我是否做错了什么。 @T.J.Crowder 请参阅comment above。 【参考方案1】:

您的问题似乎表明您知道可以使用val,但选择不使用。所以我尝试了各种选项,但我认为您不能可靠地使用text 来设置文本区域。

因此,由于设置textarea 的值的正确方法是使用val,因此使用val。 :-) 如果你这样做,不管textarea 是否被用户编辑,它都可以工作:

$('#myButton').click(function() 
   $('#myText').val(Date.now); 
);
<textarea id="myText"></textarea>
<button id="myButton">Go!</button>

<script src="//code.jquery.com/jquery-2.1.0.js"></script>

【讨论】:

以上是关于即使在手动更新 TEXTAREA 值后如何强制 jQuery.text() 工作? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

JS更改值后验证textarea

通过JS改变textarea的值后,但提交表单时还是默认的,为啥!!!

强制 TEXTAREA 元素换行的最优雅方式,*不管*空格

手动写入后无法使用 javascript 更新 textarea

更改 FriendlyName 注册表值后如何强制 Windows 设备管理器刷新设备名称显示

如何使用 selenium webdriver 进行强制页面刷新?