在Javascript中从textarea中删除某些文本

时间:2013-07-05 07:26:16

标签: javascript jquery html

我需要一些关于删除文本区域中某个单词或短语的最佳方法的输入。我有一个名为input的输入字段。我想在该区域中搜索放入名为name的表单字段中的单词,然后从input中删除。我试过的代码都没有用,大多数搜索结果都产生了无关紧要的效果。

function delete() {
    var name = document.getElementById("name").value;
    var textarea = document.getElementById("input").value;
    var data = textarea.length;
    for (var i = 0; i < data.length; i++) {
        if (textarea.substr(i, data) == name) {
            textarea.value = "";
        }
    }
}

我之前没想过的事情。

3 个答案:

答案 0 :(得分:4)

不确定您要做什么,但这是正确的代码:(您的代码中存在许多错误

function deleteValue() {  //instead of "delete"
    var name = document.getElementById("name");
    var textarea = document.getElementById("result");  //intead of "input"
    var data = textarea.value;
    for (var i = 0; i < data.length; i++) {
        if (data.substr(i, data) == name.value) {
            textarea.value = "";
        }
    }
}

需要考虑的一些要点:

  • 将您的文字输入名称从input更改为其他名称,因为它是tag name
  • 您不能拥有函数名delete,因为它是javascript中的保留字。使用像deleteValue这样的其他内容。

<强>更新

我认为这就是你要找的......

function deleteValue() {
    var name = document.getElementById("name");
    var textarea = document.getElementById("result");
    var data = textarea.value;
    textarea.value = textarea.value.replace(name.value, "");
}

<强> Working Fiddle

答案 1 :(得分:1)

您可以将replaceAll函数添加到String对象。如果要删除所有特定文本。

(function() {   
    if (!String.replaceAll) {
        String.prototype.replaceAll = function replaceAll(replace, value) {
            return this.replace(new RegExp(replace, 'g'), value);
        };
}
}());

修改delete函数应如下所示:

function deleteValue() {
    var name = document.getElementById('name');
    var textarea = document.getElementById('result');
    var data = textarea.value;
    textarea.value = textarea.value.replaceAll(name.value, "");
} 

答案 2 :(得分:0)

这是jQuery解决方案(我提供了它,因为你标记了jQuery):

<强> jsFiddle

// to execute code when the page is entierly loaded
$(document).ready(function(){
    // click event on the button
    $('#myButton').click(function(){
        // get the content of the #result textarea
        val = $('#result').val();
        // remove all occurence of content of #name in #result
        $('#result').val(val.replace($('#name').val(), ""));
    });
});