清除textarea附加()

时间:2015-09-17 11:54:04

标签: jquery

我正在尝试绘制矩形并捕获textarea中的坐标。提供了一个按钮来清除文本区域。

问题 1 :textarea未被清除(下次更新textarea时删除的文本仍然存在)。

$("#clearoutput").click(function (e) {
    $("#output").empty();
});

我试过了.val(""),但这似乎只是清除了textarea表单。该文本仍然在html源中可见。此外,它保持清除,不允许新的条目。

问题 2 :我不确定追加是如何运作的。如果我没有将.empty()放在mousedown上(即开始新绘图),它将附加整个textarea而不是追加最后一行。那是为什么?

有关重现问题1的代码和说明,请参阅http://jsfiddle.net/dpqm77b7/ (代码改编自jQuery drag and draw

谢谢!

2 个答案:

答案 0 :(得分:1)

您的代码中有几个错误。

1 - 您有一个多次应用的事件监听器。您必须在容器上添加.off("mousemove").off("mouseup")

2 - 输入字段没有DOM子级。因此,您无法在输入中附加DOM元素。您可以使用.val()代替.append()作为输入元素。

3 - 您的清除按钮可以清除textarea,但不能绘制。所以我存储了将信息绘制到数组中。清除后,您可以访问旧的绘图信息。

你可以看到这个小提琴完美运作。

http://jsfiddle.net/ebilgin/dpqm77b7/5/

(woodduck添加了一行(根据评论)使其按预期工作:http://jsfiddle.net/df2te8oy/

答案 1 :(得分:0)

问题1: .val('')正在使用的原因,因为您要将内容附加到textarea而不是设置它。在textboxes / textareas中设置内容为空

$("#clearoutput").click(function (e) {
  $("#output").val('');
});

问题2:

您应该使用.val()来获取/设置/修改textarea内容

$("#output").val(function(i,oldval){
  return !oldval.length ? os :oldval+ "\n" + os;
});

<强> Working Demo