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のドキュメントを参照してください)。

もう1つの問題は、ユーザーが実際に何かを入力する前に値を取得しようとしていることです。ページの読み込み時に値を取得したくないが、ユーザーがボタンをクリックしたとき:

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

document.writeテスト目的であっても、使用は控えさせていただきます。少なくとも、DOMがロードされた後に呼び出すとどうなるかを理解してください

于 2013-01-30T01:37:10.537 に答える