簡體   English   中英

向用戶顯示輸入-javascript

[英]Displaying input back to a user - javascript

我發現了幾個問題以及有關如何執行此操作的答案,但我認為我的問題很有趣。 我試圖讓用戶在文本框中輸入他們的名字,然后一旦他們按下按鈕,它將顯示給他們。

這是我的代碼:

<html>
<head>
    <title>Side Bar test</title>
    <link rel="stylesheet" href="test.css" />
</head>

<body>
    <div id="sideWrapper">
        <p id="wrapper"><label for="name">Name: <input type="text" name="name" id="name"></p>
        <button onclick="display();">Submit</button>
        </br>

        <div id="playerName">

        </div>
    </div>
</body>

<script type="text/javascript" language="javascript">
    var input = document.getElementById("name").value;

    function display() {
        document.getElementById("playerName").innerHTML = "<p>Player: " + input + "</p>";
    }
</script>

調用document.getElementById("name").value ,它僅采用首次加載頁面時文本字段中的內容。 之后嘗試更新它並單擊按鈕不起作用。 因此,如果您在字段中鍵入“ John Doe”,然后重新加載頁面並單擊按鈕,它將顯示John Doe。 但是,如果您嘗試更改它,則它將不起作用。 我嘗試將腳本移到<head>但這只會使它不確定。

我如何才能使display()函數看到用戶在框中鍵入的內容並進行更新以將其打印到屏幕上?

編輯 :通過將輸入行移入功能體來修復代碼。

<script type="text/javascript" language="javascript">
    function display() {
        var input = document.getElementById("name").value;
        document.getElementById("PlayerName").innerHTML = "<p>Player: " + input + "</p>";
    }
</script>

您需要將input聲明放入display函數中。

function display() {
    var input = document.getElementById("name").value;
    document.getElementById("playerName").innerHTML = "<p>Player: " + input + "</p>";
}

如您目前所擁有的那樣, input值是在頁面加載時存儲的,因此不會自動更新。

input = document.getElementById("name").value; 應該位於函數display() ,因為您將始終將其設置為初始值(空)。

您的問題是這樣的: var input = document.getElementById("name").value; 程序加載后立即觸發。

要解決此問題,請執行以下操作:

function display() {
    var input = document.getElementById("name").value;
    document.getElementById("playerName").innerHTML = "<p>Player: " + input + "</p>";
}

這樣,每次調用函數時,都會為輸入變量分配輸入元素的當前值。

這是一個小玩意 ,表明在頁面加載時將觸發input變量賦值。 我在輸入中添加了一個默認值,以表明無論以后將其更改為什么,該值始終都是默認值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM