Never mind!
I managed to come up with a solution.
function insert_location(){
ob_start();
?>
<select name="location" id="location" class="postform">
<?php
$tax_terms = get_terms('location', array('hide_empty' => '0'));
foreach ( $tax_terms as $tax_term ):
echo '<option value="-1">Select a Location</option><option class="level-0" value="'.get_term_link($tax_term).'">'.$tax_term->name.'</option>';
endforeach;
?>
</select>
<script type="text/javascript">
/* <![CDATA[ */
(function() {
var dropdown = document.getElementById( "location" );
function onLocChange() {
if ( dropdown.options[ dropdown.selectedIndex ].value != "-1" ) {
window.location.href = dropdown.options[ dropdown.selectedIndex ].value;
}
}
dropdown.onchange = onLocChange;
})();
/* ]]> */
</script>
<?php
return ob_get_clean();
}
add_shortcode('location_filter','insert_location');
Instead of using the Term ID, I have replaced it with
.get_term_link($tax_term).
And rather than submitting with a form, I have chosen to use the following line of code.
window.location.href = dropdown.options[ dropdown.selectedIndex ].value;