Javascript 如何在页面重新加载时保留下拉选择
这是我的下拉代码,它根据所做的选择创建一个查询字符串。我只想弄清楚,当页面重新加载时,如何保留所选内容Javascript 如何在页面重新加载时保留下拉选择,javascript,jquery,drop-down-menu,Javascript,Jquery,Drop Down Menu,这是我的下拉代码,它根据所做的选择创建一个查询字符串。我只想弄清楚,当页面重新加载时,如何保留所选内容 <html> <select id="categoryFilter"> <option value=""></option> <option name="Category1" id=Category1 value=".">All</option> <option name="Category2" id=Categor
<html>
<select id="categoryFilter">
<option value=""></option>
<option name="Category1" id=Category1 value=".">All</option>
<option name="Category2" id=Category2 value="2.1">Processors</option>
<option name="Category3" id=Category3 value="2.4">GPU</option>
<option name="Category4" id=Category4 value="1">Corporate</option>
</select>
<script>
function setSelectedIndex(s, valsearch)
{
// Loop through all the items in drop down list
for (i = 0; i< s.options.length; i++)
{
if (s.options[i].value == valsearch)
{
// Item is found. Set its property and exit
s.options[i].selected = true;
break;
}
}
return;
}
function Filter_Init()
{
var fvalue= JSRequest.QueryString['categoryFilter'];
setSelectedIndex(document.getElementById('categoryFilter'), decodeURI(fvalue));
}
$('#categoryFilter').change(function() {
window.location = 'http://' + location.hostname + location.pathname + '?' + $("#categoryFilter option:selected").attr('id') + '=' + $("#categoryFilter option:selected").val() + '#2';
Filter_Init();
});
您必须在页面加载时解析查询参数的url字符串,然后使用一些逻辑来定位相应的元素并将其“选中”。在服务器端语言中这样做很可能比在DOM加载后更改为另一种状态更好,因此在一种状态下加载元素时没有“闪存” 对于Javascript实现,请尝试以下操作:
这就是我解决问题的方法 在页面加载时提取查询字符串 根据传入的查询字符串选择正确的选项 我在您的查询中注意到的一点是,您发送的查询类似于?Category2=2.1,我认为这有点不灵活。从长远来看,像?id=Category2&value=2.1这样的东西可能更灵活 这个JS库是URL解析器库的一个很好的候选库
1大多数浏览器在默认情况下都会这样做,2您可以使用位置哈希来存储状态,或者3使用Cookies我想是这样的!我很惊讶看到我们也提到了同样的问题!!谢谢你的提示。我决定采取一种不同的方法,但我想我完成了同样的事情。我更新了JS,所以你可以看到我在哪里。它不起作用,但是任何关于它为什么不起作用的建议都是非常感谢的。谢谢你的提示。我决定采取一种不同的方法,但我想我完成了同样的事情。我更新了JS,所以你可以看到我在哪里。我之所以有这样的查询,是因为我在Sharepoint 2007中有一个DVWP,它可以使用。这是您如何从查询向Web部件传递参数的方法。