In the HTML head section:
<script type="text/javascript" src="Scripts/editScripts.js"></script>
Just above the </body> tag(closing tag, bottom of the html page). Also: this is the old code, this is how it was when it was not working:
<script type="text/javascript">if(document.getElementById)initialize();loadEvents();</script>
</body>
</html>
In the editScripts.js file:
/*global document,addFileInput*/
function loadEvents() {
var a = document.getElementById('addField');
a.onclick = addFileInput;
}
var upload_number = 2;
function addFileInput() {
var d = document.createElement("div");
var file = document.createElement("input");
file.setAttribute("type", "file");
file.setAttribute("name", "addFile[]");
file.setAttribute("size", "35");
file.setAttribute("class", "file");
file.setAttribute("id", "addFile"+upload_number);
d.appendChild(file);
document.getElementById("moreUploads").appendChild(d);
upload_number++;
}
This would not work. I replace the javascript in the footer with this.
This is the new code, which does work as I expect it to.:
<script type="text/javascript">if (document.getElementById)loadEvents();</script>
And now it does work… I don’t see how leaving out that function call, even though it the function it was referring to doesn’t exist, would mess things up so royally.
The browser would have reported an error when attempting to call the “initialize” function since there was no such function. Therefore, the very next line where you call “loadEvents” wouldn’t run. See this example:
In that example, the alert box shouldn’t appear because I haven’t declared an “initialize” function and the browser will report a JS error. Removing the “initialize” function, however, will cause the alert box to appear.
So that’s how by removing the cause of the Javascript error you fixed your problem.