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

20

我有一个设备列表,可以选择要编辑的设备。 我有3种编辑状态:未选择设备时,选择1个设备时或选择x个设备时。

问题在于,当用户在文本区域(commentField)键入一些文本并取消编辑以编辑另一个设备时,文本不会消失。 当我进入新的编辑对话框时,commentfield中仍然有旧文本(就好像它没有被清除)

我尝试了以下代码来删除文本(无论是在按下“取消”按钮还是启动新对话框时),但都没有效果:

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

有没有人知道如何使用jQuery从textarea中删除用户输入的文本?

先行致谢。

- Thor


可能是在jQuery中设置textarea的值的重复问题。 - jtbandes
5个回答

65

你知道为什么这不会触发文本区域的change事件吗? - user3281466
1
@user3281466:通过编程设置一个值不会触发“change”事件。如果您想要触发该事件,可以在设置完值后手动调用.change - Andrew Whitaker

3

因为textarea是一个输入字段,它有一个value属性,所以您需要使用val()方法。尝试这个:

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

1
在jQuery中,实际上是这样的:$("#commentField").val(" ");

0
您可以像这样从文本区域中删除文本:
$("#commentField").html("");

编辑:这个方法不起作用,但我很想知道为什么。我一直以为在textarea标签之间的文本是innerHTML,而html()只会替换它。难道把textarea看做输入框不是很合理吗?还是因为textarea包含大量文本,在引号之间看起来很俗气?

使用普通的JavaScript和innerHTML,在FF6中可以正常工作。 演示在这里


1
实际上,在这里进行负投票是不公平的;我也遇到了同样的问题,因此使用了fiddle。我还假设,由于它在标签之间,.html().text()应该可以工作,但显然不行。也许jQuery对textarea有一个特殊情况,所以它像所有其他输入一样使用.val() - Bojangles

-1

1) <textarea name="editor1" id="editor1" rows="10" cols="80"></textarea>
2) CKEDITOR.replace('editor1');
3) initiated = true;
在文本区域中编写您的文本
1)$("#editor1").val("您的输入值");
清除文本区域
1) $("#editor1").reset();
感谢您阅读此内容。


该问题没有涉及到CKEditor。 - rvighne

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接