0

ドロップダウンのあるパーシャルビューがあり、そのパーシャルをページに2回含めています。これがドロップダウンです。

<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の値sortbyaccommodationtype、、、つまりオプションの値)を取得します。私がやりたいのは、ページの両方のドロップダウンをクエリ文字列の値に一致するオプションに設定することです。私はたくさんのことを試しましたが、何も機能していません。mostreviewedlowestpricesortby

手伝ってくれますか?

編集

これを試しましたが、うまくいきませんでした

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

2 に答える 2

1

よく読んだかどうかはわかりませんが、ドロップダウンでクエリ文字列の値を選択するだけですか?

もしそうなら、これを試してみてください:

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

1つのjQueryコマンドで両方のドロップダウンを設定できるように、selectにクラス名が付いているとよいでしょう。

これがフィドルです

于 2012-09-20T14:55:21.143 に答える
1

このような名前のコントロールにアクセスすることはできません$("#name")。これは、IDのみのDOMを選択するためのセレクターです。それでも、ドロップダウンの値を次のように設定できます

$("select [name='sortbyselectop']").val(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 に答える