1

当用户在文本字段中输入文本并单击提交按钮时,他们的文本应该出现在屏幕上。现在什么都没有显示。

JS 斌:http: //jsbin.com/itotub/1/edit

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<script>
function myOnloadFunc() {
    var inputAnswer = document.getElementById("inputAnswer");
    var userAnswer = inputAnswer.innerHTML;

    var submitButton = document.getElementById("submitButton");

    submitButton.onclick = function() {
        document.write(userAnswer);
    };
}

window.onload = myOnloadFunc;
</script>
</head>

<body>
<input type="text" id="inputAnswer" placeholder="Enter your answer">
<input type="button" id="submitButton" value=">">
</body>
</html>
4

1 回答 1

4

一个input元素没有任何后代,因此.innerHTML返回一个空字符串。如果您想获取该值,则必须访问该.value属性(有关更多信息,请参阅HTMLInputElementMDN 上的文档)。

另一个问题是您试图在用户实际输入任何内容之前获取值。您不想在页面加载时获取值,但是当用户单击按钮时:

submitButton.onclick = function() {
    console.log(inputAnswer.value);
    // or alert(inputAnswer.value);
};

我会避免使用document.write,即使它仅用于测试目的。至少了解在加载 DOM 后调用它会发生什么

于 2013-01-30T01:37:10.537 回答