jQuery - 从文本区域中删除用户输入文本

Posted

技术标签:

【中文标题】jQuery - 从文本区域中删除用户输入文本【英文标题】:jQuery - remove user input text from textarea 【发布时间】:2011-10-29 21:01:43 【问题描述】:

好的,我有一个设备列表,我可以在其中选择要编辑的设备。 我有 3 个状态可供编辑。未选择任何设备时、选择了 1 个设备或选择了 x 个设备时。

我遇到的问题是,当用户在 textarea(commentField)中键入一些文本并取消编辑以编辑另一个设备时,在 textarea 中键入的文本不会消失。当我获得新编辑的新对话框时,它保持不变,评论字段具有旧评论字段中的文本(好像它没有被清除)

我尝试了以下代码来删除文本(在按下取消按钮时以及在我开始新对话框时),但没有任何效果:

$("#commentField").text(" ");
$("#commentField").value = ' ';

有谁知道如何使用 jQuery 从文本区域中删除用户输入的文本??

提前致谢。

-雷神

【问题讨论】:

Set value of textarea in jquery 的可能重复项 【参考方案1】:

你正在寻找.val():

$("#commentField").val('');

示例: http://jsfiddle.net/andrewwhitaker/q6eLV/

【讨论】:

你知道为什么这不会触发 textarea 中的更改事件吗? @user3281466:以编程方式设置值不会触发change 事件。如果您想在设置值后调用.change,您可以自己手动执行此操作。【参考方案2】:

由于textarea 是一个输入字段,它具有value 属性,因此您必须使用val() 方法。试试这个

$("#commentField").val('');

【讨论】:

【参考方案3】:

在 jQuery 中它实际上是 $("#commentField").val(" ");

【讨论】:

【参考方案4】:

您可以像这样从文本区域中删除文本:

$("#commentField").html("");

编辑:好的,这不起作用,但我真的很想知道为什么,而且我理解反对票。我一直认为textarea 标签之间的文本是innerHTML,而html() 应该只是替换它。有像输入一样的文本区域没有意义吗?还是仅仅是因为 textareas 包含大量文本,在引号之间看起来很俗气?。

在 FF6 中使用带有 innerHTML 的常规 javascript 对我有用。 demo here

【讨论】:

实际上,在这里投反对票是不公平的;我遇到了同样的问题,因此小提琴。我还假设,因为它在标签之间,.html().text() 会起作用,但显然不是。也许 jQuery 对textarea 有一个特殊情况,所以它像所有其他输入一样使用.val()【参考方案5】:

1)<textarea name="editor1" id="editor1" rows="10" cols="80"></textarea> 2) CKEDITOR.replace('editor1'); 3) initiated = true; 在你的文本区域写你的文本 1)$("#editor1").val("your input value"); 清理您的文本区域 1) $("#editor1").reset(); 让你读到这里。

【讨论】:

问题没有引用CKEditor。

以上是关于jQuery - 从文本区域中删除用户输入文本的主要内容,如果未能解决你的问题,请参考以下文章

从文本区域获取文本时如何保留换行符?

如何从 jquery 的文本区域中获取选定的文本? [复制]

在将数据输出回文本区域时,如何正确清理从文本区域接收的数据?

如何使用 AngularJs 从输入或文本区域中删除特殊字符?

如何将可关闭的文本标签添加到 Textarea Kendo | jQuery

如何更改文本区域中一行用户输入的背景颜色?