Вы вообще не устанавливаете выбранную опцию, вы просто меняете хеш, когда пользователь меняет выбранную опцию. Ничего необычного не происходит, потому что вы не используете хеш повторно.
Если вы хотите выбрать текущую опцию, например, при загрузке страницы, вам нужно выполнить JavaScript:
<script>
window.onload = function() {
var city = location.hash.substring(5); // strip the #?id=
var elem = document.getElementById('cities');
for(var i = 0 ; i < elem.options.length; i++) {
if(elem.options[i].value == city) {
elem.selectedIndex = i;
break;
}
}
};
</script>
Также, чтобы использовать JavaScript в URL, используйте javascript:
, а не java-script:
.
http://jsfiddle.net/Ez8dY/1/ (выберите город, затем перезагрузите кадр)