2017-07-03 71 views
-2

我是網絡開發新手,我有一個接一個地讀取用戶輸入的要求,因爲單擊添加按鈕,直到按下停止按鈕,然後在列表中顯示用戶輸入。我該怎麼做 ?閱讀用戶輸入,直到按下按鈕javascript

<Title>To Do List</Title> 
    <Body> 
     <Button id = "AddBtn" onClick = "Store()">Add</Button> 
     <Button id = "StopBtn" onclick = "Display()">Stop</Button> 
     <input id = "ip" type = "text" > 

     <script> 
      function Store() 
      { 
       var tasks; 
       tasks.push(document.getElementById('ip')); 
      } 
      function Display() 
      { 
       var i; 
       for(i=0;i<tasks.length;i++) 
       { 
        document.write(tasks[i]); 
       } 

      } 

     </script> 
    </Body> 

+1

這是一個變量範圍界定問題。將'var tasks = []'移動到**上面**'Store Store()'。另外,使用'document.write'將刪除文檔的其餘部分。使用DOM方法來顯示內容 – Phil

+0

您可能想要在任務數組中獲取輸入的值,所以'document.getElementById('ip').value' – RobG

回答

1
<!Doctype html> 
<html> 

<head> 
    <Title>To Do List</Title> 
</head> 

<Body> 
    <Button id="AddBtn" onclick="Store()">Add</Button> 
    <Button id="StopBtn" onclick="Display()">Stop</Button> 
    <input id="ip" type="text"> 
    <ul id="list"> 
    </ul> 

    <script> 
    var tasks = []; 

    function Store() { 

     tasks.push(document.getElementById('ip').value); 
     document.getElementById("ip").value = ""; 
    } 

    function Display() { 
     var i; 
     for (i = 0; i < tasks.length; i++) { 
     var item = document.createElement("li"); 
     var text = document.createTextNode(tasks[i]); 
     item.appendChild(text); 
     document.getElementById("list").appendChild(item); 

     } 
     tasks = []; 

    } 
    </script> 
</Body> 

</html> 
  1. JavaScript是應該 的onclick區分大小寫language.onClick。
  2. 你想存儲多個值。你需要一個數組而不是 變量。
  3. 你只想保存數組中的值而不是整個元素。
  4. 您想要在將輸入值添加到任務數組後將其清除。
  5. 您需要從數組中獲取值並創建具有 值的li元素。
  6. 你需要一個可以是ul,ol或div的li項目的父項。
  7. 您必須將所有創建的li元素添加到父級。
  8. 循環結束後,您可以清除顯示方法中的數組。