为什么它将[对象]打印为警报

时间:2013-09-30 13:10:26

标签: javascript html

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

    user name:
    <input type="text" id="t1">
    <br>
    <button type="button" onClick="myFunction()">display</button>

    <script type="text/javascript">
        function myFunction() {
            var str;
            str = document.getElementById("t1");
            alert(str);
        }
    </script>

</body>
</html>

在上面的程序中,它在警告框内显示[object],我不知道为什么,我想在文本框中显示用户输入的内容。帮助我..........

5 个答案:

答案 0 :(得分:3)

您只获取表示为对象的html元素,而不是<input>的实际内容。您需要使用.value明确获取该内容:

   function myFunction() {
        var str;
        str = document.getElementById("t1").value;
        alert(str);
    }

答案 1 :(得分:1)

变化:

str = document.getElementById("t1")

为:

str = document.getElementById("t1").value;

<强> jsFiddle example

document.getElementById("t1")引用元素,因此您需要指定所需元素的属性。在这种情况下,值。

答案 2 :(得分:0)

您的str变量包含对象本身的引用,而不是内部文本。你想要的是:

str = document.getElementById('t1').value;

答案 3 :(得分:0)

您应该在警报中使用t1.valuet1是整个输入元素,但您只对输入的内容感兴趣,即

答案 4 :(得分:-3)

而不是alert(str),请使用console.log(str),然后检查浏览器控制台