There's only one possible reason for that error message, document.getElementById("drop")
does not return the element, and the only reason for that is that the element doesn't exists, but in the HTML it clearly does, so the script must be running before the elements in the DOM.
You have to include the javascript after the elements in the DOM, or wrap it in a DOM ready handler, like window.onload etc.
<form method="post" action="{path='locations/index'}" class="drop">
<select id="drop">
<option>Select a Location:</option>{exp:channel:entries channel="locations" category="not 3" orderby="title" sort="asc" dynamic="no"}
<option value="{site_url}index.php/locations/{url_title}">{title}</option>{/exp:channel:entries}
</select>
</form>
<script>
document.getElementById("drop").onchange = function() {
if (this.selectedIndex !== 0) {
window.location.href = this.value;
}
};
</script>
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…