2017-07-03 58 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. 循环结束后,您可以清除显示方法中的数组。