У вас есть:
document.getElementById("zipmessage")
Но у вас нет такого элемента. Если вы добавите этот элемент, он будет работать.
function checkzip() {
var zip = document.getElementById("zipcode").value;
var regex = /^[0-9]{5}$/;
if (regex.test(zip)) {
document.getElementById("zipmessage").innerHTML = "Valid";
} else {
document.getElementById("zipmessage").innerHTML = "Please enter a 5 digit numeric zip code";
}
}
<table>
<tr>
<td>Zip Code:</td>
<td>
<input id="zipcode" name="zipcode" type="text" onclick="this.focus()" onblur="checkzip();" required/>
</td>
</tr>
</table>
<div id="zipmessage"></div>
Но, поскольку вы сказали, что изучаете это у «инструктора», позвольте мне сказать вам, что вы не учитесь, используя современные передовые практики. и некоторых из того, что вы делаете, следует избегать.
Итак , вот более правильный способ сделать это:
// Just get a reference to the element, not a particular
// property of an element. That way, if you want to access
// a second property, you won't have to scan for the element
// reference a second time.
// Also, get references that you'll need over and over outside of your
// function so you don't keep getting the same reference over and over
// Do you event binding in JavaScript, not HTML:
var zip = document.getElementById("zipcode");
zip.addEventListener("blur", checkzip);
var message = document.getElementById("zipmessage");
function checkzip() {
// Having this.focus() in an event handler that runs when you click
// on an element is redundant. If you've clicked the element, it
// will get the focus.
var regex = /^[0-9]{5}$/;
if (regex.test(zip.value)) {
message.textContent = "Valid";
} else {
message.textContent = "Please enter a 5 digit numeric zip code";
}
}
<table>
<tr>
<td>Zip Code:</td>
<td>
<!-- Don't use self-terminating syntax.
Also type="text" is not necessary since text is the
default type of input. -->
<input id="zipcode" name="zipcode" required>
</td>
</tr>
</table>
<div id="zipmessage"></div>
К сожалению, существует так много руководств, уроков и учителей, которые на самом деле не знают HTML и JavaScript должным образом и не показывают, как получить код работать". Рабочий код - это не всегда «правильный» код или «хороший» код. Вы должны сообщить своему инструктору о неправильных вещах, которым они учат, что я показал здесь.