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

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

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

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

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

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

提前致谢。

-雷神

【问题讨论】:

标签: jquery jquery-ui textarea jquery-ui-dialog user-input


【解决方案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。
      猜你喜欢
      • 1970-01-01
      • 2012-03-29
      • 2010-10-30
      • 2016-10-20
      • 2017-11-25
      • 2020-09-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多