0

I am trying to get information that I type into a textbox to display in the unordered list I have in my code to the browser. I am also trying to have it display a message after I input 5 items. Please see my code below.

<!DOCTYPE html>
<html>
<head>

   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width,initial-scale=1.0">
   <title>Hands-on Project 3-4</title>
   <link rel="stylesheet" href="styles.css" />
   <script src="modernizr.custom.05819.js"></script>
</head>

<body>
   <header>
      <h1>
         Hands-on Project 3-4
      </h1>
   </header>

   <article>
      <div id="results">
          <ul>
             <li id="item1"></li>
             <li id="item2"></li>
             <li id="item3"></li>
             <li id="item4"></li>
             <li id="item5"></li>
          </ul>
          <p id="resultsExpl"></p>
      </div>
      <form>
          <fieldset>
            <label for="toolBox" id="placeLabel">
              Type the name of a tool, then click Submit:
            </label>
            <input type="text" id="toolBox" />
          </fieldset>
          <fieldset>
            <button type="button" id="button">Submit</button>
          </fieldset>
      </form>
   </article>
    <script>
        var i = 1;
        var listItem = "";

        function processInput() {
            if (i <= 5) {             

               listIem = document.getElementById("item" + i).innerHTML = i;

            }

        }
        if (window.addEventListener) {
            window.addEventListener("click", processInput, false);
        } else if (window.attachEvent) {
            window.attachEvent("onclick", processInput);
        }
    </script>
</body>
</html>

1 Answers1

0

This:

function processInput() {
    if (i <= 5) {  
        listIem = document.getElementById("item" + i).innerHTML = i;
    }
}

Should be this:

function processInput() {
    if (i <= 5) {  
        document.getElementById("item" + i).textContent = document.getElementById("toolBox").value;
        i++; // increment i here
    }
}

Or this (if you want things to be separated):

function processInput() {
    if (i <= 5) {  
        var listItem = document.getElementById("item" + i);
        var input = document.getElementById("toolBox");
        listItem.textContent = input.value;
        i++; // increment i here
    }
}

Use .textContent instead of .innerHTML and get the #toolBox input value using .vlaue.

Note: it will be better if you could generate the list items dynamically (check how here).

Community
  • 1
  • 1
ibrahim mahrir
  • 31,174
  • 5
  • 48
  • 73