返回和保留选择的下拉列表函数

Jquery Drop down list function to return and keep selection

本文关键字:下拉列表 函数 选择 保留 返回      更新时间:2023-09-26

我有一个愚蠢的简单下拉列表,当选择时,它将下面列表中看到的值附加到URL以进行排序,虽然这可以工作,但我缺少一块拼图,因为它没有保留选择。onchange强制刷新页面,而值仍然传递到URL并保留给用户,这可能仍然很明显他们没有做出选择。所以我在看也许使用Jquery作为一个函数在onchange,而不是现在正在使用的重定向,但我不知道从哪里开始,因为我是很新的这…

 <select id="Selection" class="sorter" onchange="location=this.options[[this.selectedIndex]].value" style="float:right;margin-right:8px;">
   <option value="">Sort by</option>
   <option value="?orderby=0">Code</option>
   <option value="?orderby=1">Title A-Z</option>
   <option value="?orderby=2">Title Z-A</option>
   <option value="?orderby=3">Brand</option>
   <option value="?orderby=4">Lowest price</option>
   <option value="?orderby=5">Highest price</option>
   <option value="?orderby=6">Lowest Quantity</option>
   <option value="?orderby=7">Highest Quantity</option>
 </select>

这是对你的问题的回答。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
(function($) {
    $.QueryString = (function(a) {
        if (a == "") return {};
        var b = {};
        for (var i = 0; i < a.length; ++i)
        {
            var p=a[i].split('=');
            if (p.length != 2) continue;
            b[p[0]] = decodeURIComponent(p[1].replace(/'+/g, " "));
        }
        return b;
    })(window.location.search.substr(1).split('&'))
})(jQuery);
var qstr=$.QueryString["orderby"];
alert(qstr);
//$("#Selection").prop("selectedIndex", qstr); 
</script>
 <select id="Selection" class="sorter" onchange="location=this.options[[this.selectedIndex]].value" style="float:right;margin-right:8px;">
   <option  id=1 value="">Sort by</option>
   <option  id=2  value="?orderby=1">Code</option>
   <option  id=3 value="?orderby=2">Title A-Z</option>
   <option  id=4 value="?orderby=3">Title Z-A</option>
   <option  id=5 value="?orderby=4">Brand</option>
   <option  id=6 value="?orderby=5">Lowest price</option>
   <option  id=7 value="?orderby=6">Highest price</option>
   <option  id=8 value="?orderby=7">Lowest Quantity</option>
   <option  id=9 value="?orderby=8">Highest Quantity</option>
 </select>
<script>$("#Selection").prop("selectedIndex", qstr); 
</script>

</body>
</html>