Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在页面重新加载时保留下拉选择_Javascript_Jquery_Drop Down Menu - Fatal编程技术网

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部件传递参数的方法。