0

I have a button on my page that is intended to clear all the textareas that are in the document, however when I click said button it appears that the function isn't being run. I've tried adding a button listener to the document, and that still didn't seem to work, I don't understand what the problem is, as the line with the alert isn't even running.

    
    function markForm(tagID) {
        var x = document.getElementById(tagID)
        var pre = document.createElement("pre");
        x.appendChild(pre);
        var SectionDetails = [
            { name: "Dynamic Table", maxMarks: 20},
            { name: "IntelliJ usage", maxMarks: 10},
            { name: "Calendar Controller", maxMarks: 30},
            { name: "Active Form", maxMarks: 20},
            { name: "Object Database", maxMarks: 20}
        ];
        var table = pre.appendChild(document.createElement("table"));
        var tableHeader = table.appendChild(document.createElement("thead"));
        var tableRow = tableHeader.appendChild(document.createElement("tr"));
        var headRow = tableRow.appendChild(document.createElement("th"));
        headRow.appendChild(document.createTextNode("Section"));
        headRow = tableRow.appendChild(document.createElement("th"));
        headRow.appendChild(document.createTextNode("Max Mark"));
        headRow = tableRow.appendChild(document.createElement("th"));
        headRow.appendChild(document.createTextNode("Comments"));
        headRow = tableRow.appendChild(document.createElement("th"));
        headRow.appendChild(document.createTextNode("Mark"));
        var resultsRows = table.appendChild(document.createElement("tbody"));
        for (var i = 0; i < SectionDetails.length; i++) {
            tableRow = resultsRows.appendChild(document.createElement("tr"));
            var tableData = tableRow.appendChild(document.createElement("td"));
            tableData.appendChild(document.createTextNode(SectionDetails[i].name));
            tableData = tableRow.appendChild(document.createElement("td"));
            tableData.appendChild(document.createTextNode(SectionDetails[i].maxMarks));
            tableData = tableRow.appendChild(document.createElement("td"));
            var tarea = document.createElement("textarea");
            tarea.value = "Enter Comments";
            tableData.appendChild(tarea);
            tableData = tableRow.appendChild(document.createElement("td"));
            var dropDown = document.createElement("select");
            dropDown.name = SectionDetails[i].name;
            for (var j = 0; j < (SectionDetails[i].maxMarks + 1); j++) {
                var listItem = new Option(j);
                listItem.value=j;
                dropDown.appendChild(listItem);
            }
            tableData.appendChild(dropDown);
        }
        var h2 = document.createElement("h2");
        h2.innerHTML = "Total Marks: " + document.createTextNode(totalMarks);
        x.appendChild(h2);
    }
    
    function totalMarks() {
        var total = 0;
        for (var a = 0; a < SectionDetails.length; a++) {
            var e = document.getElementById(SectionDetails[a].name);
            var total = total + Number(e.options[e.selectedIndex].value);
        }
        return total;
    }
    
    function clear() {
        var textareas = documents.getElementsByTagName("textarea");
        console.log(textareas);
        for (var i = 0; i < textareas.length; i++) {
            textareas[i].value="Enter Comments";
        }
        alert("Fields Cleared");
    }
    <body onload="markForm('conversion')">
    <h2>Marking Form: </h2>
    <p id='conversion'>
    
    </p>
    <p id='clear'>
        <input type="button" id="but" value="Clear" onclick="clear()"/>
    </p>
mplungjan
  • 169,008
  • 28
  • 173
  • 236
Chaz
  • 195
  • 4
  • 17

1 Answers1

2

There seems an error in your clear() function. it should be document.getElementsByTagName(). and yours is "documents" - also clear is a word used elsewhere: document.clear

mplungjan
  • 169,008
  • 28
  • 173
  • 236
Pradeep
  • 1,108
  • 1
  • 15
  • 31