如何在javascript中清除textarea的值?

时间:2014-06-02 03:11:25

标签: javascript html

我试图根据下拉选项删除某些元素的内容。我已经尝试过这段代码,警报显示新值为空,但是当我保存它时,目标元素仍然有内容。

这是我的代码:

var res = document.getElementById("select-result").value;                                               //alert(res);
function clearValues(id, inputType) {
    var td = document.getElementById(id);

        if (td != undefined || td != null) {
            var res = td.getElementsByTagName(inputType)[0].value;                                                  
            alert(res); // returns the content of element
            if (res != "") {                                            
               res = "";                                                            
               alert("New res value: " + res); //returns empty
            } 
        }
}

注意:     如果我手动删除目标元素的内容,则将其保存为空。这令人费解     为了我。不同的是,javascript使事情变得更容易,而不是手动清空字段。

3 个答案:

答案 0 :(得分:1)

您将res设置为文本框的值 - 而不是value属性。因此,您只需将res变量设置为空,而不是文本框的值。试试这个,而不是:

var res = document.getElementById("select-result").value; 
function clearValues(id, inputType) {
    var td = document.getElementById(id);

        if (td != undefined || td != null) {
            var res = td.getElementsByTagName(inputType)[0].value;
            if (res != "") {             
               td.getElementsByTagName(inputType)[0].value = "";  
            } 
        }
}

答案 1 :(得分:1)

您已将textarea的值分配给新变量res,但res不是指向该值的指针,它基本上是该副本的副本值和对res所做的任何更改都不会反映在原始值中。

考虑以下代码:

var fruit1 = "apples"
var fruit2 = fruit1;

fruit2 = "oranges"

alert(fruit1); // still "apples"
alert(fruit2); // now "oranges"

因此,您希望更改原始元素的实际value属性,如下所示:

td.getElementsByTagName(inputType)[0].value = ""; 

答案 2 :(得分:0)

试试这个。

function clearValues(id, inputType) {
    var td = document.getElementById(id);

    if (td != undefined || td != null) {
        var element = td.getElementsByTagName(inputType)[0];
            elmValue = element.value;                                                
        if (elmValue != '') {                                            
           element.value = "";                                                            
        } 
    }
}