0

我有一个局部视图,其中有一个下拉列表,我在我的页面中包含该局部视图两次。这是下拉菜单。

<form name="sortbyformtop">
            <select onchange="sort('@querystring', this.options[this.selectedIndex].value);" name="sortbyselecttop">
                <option value=""></option>
                <option value="accommodationtype">Accommodation type</option>
                <option value="mostreviewed">Most reviewed</option>
                <option value="lowestprice">Lowest price</option>
            </select>
        </form>

现在,当页面加载时,如果查询字符串包含一个键,sortby那么我想取的值sortby(这将是accommodationtype, mostreviewedlowestprice即选项的值)。我想做的是将页面上的两个下拉菜单都设置为与sortby查询字符串值匹配的选项。我已经尝试了很多东西,但没有任何效果。

你能帮我吗?

编辑

我试过了,但没有用

$(document).ready(function () {
                $("#sortbyselecttop option").filter(function () {
                    alert($(this).text());
                    return $(this).text() == "lowestprice";
                }).first().prop("selected", true);
            });
4

2 回答 2

1

您不能访问具有这样名称的控件,$("#name")这是一个仅选择具有 ID 的 DOM 的选择器。但您仍然可以设置下拉菜单的值,例如

$("select [name='sortbyselectop']").val(value);

假设 value 是您的查询字符串值所在的变量

function Querystring(qs)
{
this.params = {};
this.get = Querystring_get;
this.args = {};
qs = qs ? qs.replace(/^#/g, '') : location.search.substring(1, location.search.length);

if (qs.length == 0)
    return;
qs = qs.replace(/\+/g, ' ');
this.args = qs.split('&');
for (var i = 0; i < this.args.length; i++)
{
    var pair = this.args[i].split('=');
    var name = unescape(pair[0]);

    var value = (pair.length == 2)
     ? unescape(pair[1])
     : name;

    this.params[name] = value;
}
this.joined = function()
{
    var join = new Array();
    for (var a in this.params)
    {
        join.push(a + '=' + this.params[a]);
    };
    return join.join('&');
};

}
function Querystring_get(key, defaultValue)
{
var value = this.params[key];
return (value != null) ? value : defaultValue;
};

尝试这些功能并获得价值

var qs = new Querystring().get("sortby", '');

现在 qs 将拥有您的查询字符串值,您可以设置下拉列表的值,例如

$("select [name='sortbyselectop']").val(qs);

希望这会奏效。

于 2012-09-20T15:26:37.090 回答
1

不确定我是否读得很好,但你只是想让下拉菜单选择查询字符串的值吗?

如果是这样,试试这个:

$('select[name="sortbyselecttop"]').val('accommodationtype');

如果选择有一个类名会更好,这样您就可以使用一个 jQuery 命令设置两个下拉菜单。

这是一个小提琴

于 2012-09-20T14:55:21.143 回答