I have an HTML page with the following code:
<input type="number" maxlength="5" id="patrollerID.1.1" placeholder="ID Num" onchange="getPatroller(this.id)" />
I would like to move the JavaScript out of the html. The id changes based on change events. How can I keep all of the JavaScript in my .js file instead of inline?
Here is what I have:
function getPatroller(patroller) {
var element = document.getElementById(patroller);
/** @type {Date} */
var date = new Date();
/** @const */
var ID = 2,
LAST = 0,
FIRST = 1,
LEVEL = 3;
/** @type {number} */
var exists = 0;
/** @type {string} */
var level;
/** @type {Array.<string>} */
var elementId = patroller.split('.');
for (var j = 0; j < patrollers.length; j++) {
if (element.value == patrollers[j][ID]) {
document.getElementById("patroller." + elementId[1] + "." + elementId[2]).innerHTML = "<h4>" + patrollers[j][FIRST] + " " + patrollers[j][LAST] + "</h4>";
if (patrollers[j][LEVEL] == 1) {
level = "Basic";
} else if (patrollers[j][LEVEL] == 2) {
level = "Senior";
} else {
level = "Certified";
}
document.getElementById("level." + elementId[1] + "." + elementId[2]).innerHTML = "<h4>" + level + "</h4>";
var minutes = date.getMinutes();
if (minutes < 10) {
minutes = "0" + minutes;
}
document.getElementById("time." + elementId[1] + "." + elementId[2]).innerHTML = "<h4>" + date.getHours() + ":" + minutes + "</h4>";
patrollers.splice(patrollers[j]--, 1); //remove array element
elementId[2]++;
/** @type {boolean} */
var addTeam = setCounter(elementId[1]);
if (addTeam === true) {
addPatroller(elementId[1], elementId[2]);
}
exists = 1;
break;
}
}
if (exists == 0) {
alert("PLEASE TRY AGAIN!");//Do something here if number already in use.
element.value = '';
}
}
function setCounter(teamNum) {
/** @const */
var MAX_TEAM = 4;
if (teamNum == 1) {
if (typeof t1Counter == 'undefined') {
t1Counter = 1;
}
if (t1Counter < MAX_TEAM) {
t1Counter++;
return true;
} else {
return false;
}
} else if (teamNum == 2) {
if (typeof t2Counter == 'undefined') {
t2Counter = 1;
}
if (t2Counter < MAX_TEAM) {
t2Counter++;
return true;
} else {
return false;
}
} else if (teamNum == 3) {
if (typeof t3Counter == 'undefined') {
t3Counter = 1;
}
if (t3Counter < MAX_TEAM) {
t3Counter++;
return true;
} else {
return false;
}
} else if (teamNum == 4) {
if (typeof t4Counter == 'undefined') {
t4Counter = 1;
}
if (t4Counter < MAX_TEAM) {
t4Counter++;
return true;
} else {
return false;
}
} else {
if (typeof t5Counter == 'undefined') {
t5Counter = 1;
}
if (t5Counter < MAX_TEAM) {
t5Counter++;
return true;
} else {
return false;
}
}
}