我创建了一个页面,其中包含按意大利省份分类的地址列表
在页面顶部,我有一个 <select>
标记,其中包含所有省份<option>
的列表,我已为此<select>
分配了 onChange 事件为每个省生成不同的URL。
<form class="form" action="java-script:update();">
<select name="cities" id="cities" onchange = "update(); location.hash = '?id=' + this.value">
<option value = "Bologna">Bologna</option>
<option value = "Milano">Milano</option>
<option value = "Roma">Roma</option>
</select>
</form>
例如,如果我复制其他省份的链接(例如http://mywebsite.it/page.html#?id=Roma)并打开一个新标签并将其粘贴到地址栏中,我提交,总是提醒我在第一个上的位置选项(在这种情况下,博洛尼亚)。
为什么?
谢谢!抱歉我的英语不好。
答案 0 :(得分:0)
您根本不设置所选选项,只需在用户更改所选选项时更改哈希值。没有什么花哨的事情发生,因为你没有重用哈希。
例如,如果要在页面加载时选择当前选项,则需要执行一些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,请使用javascript:
,而不是java-script:
。
http://jsfiddle.net/Ez8dY/1/(选择一个城市,然后重新加载框架)