从查询字符串中选择下拉值

Selecting dropdown value from query string

我是 jQuery 的新手,我遇到了这种情况:

我有一个下拉列表:

 <div class="gr">
<input type="hidden" id="Referral" name="Referral" data-required="required" value="">
                                <div class="fauxSelect">
                                    <div class="arrow_btn">
                                        <div class="arrow"></div>
                                    </div>
                                    <ul class="items" data-hidden-field="Referral">
                                        <li class="item" data-value="Keith T">Keith</li>
                                        <li class="item" data-value="Steve B">Steve</li>
                                    </ul>
                                </div>
    </div>

现在,自定义 javascript 代码的工作方式是,无论您在下拉列表中 select 什么,都将出现在隐藏字段中:Referral(这部分已经通过另一个 JS 库完成了)。

如果我没有传递任何查询字符串参数,一切正常。我的问题是:如果我传递带有 Keith T 参数的 link,像这样:

http://application.aspx?Referral=Keith T

我希望 Keith 在我的下拉菜单中 selected 并且我的下拉菜单应该被禁用。这是我目前的 jQuery:

    SelectReferralFromQueryString();

    function SelectReferralFromQueryString() {
        var name = GetParameterValues('Referral');

        if (name != false) {

            name = decodeURIComponent(name);
            //here name comes correct as Keith T. What should I do from here?
        }

}
    function GetParameterValues(param) {
        var url = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
        for (var i = 0; i < url.length; i++) {
            var urlparam = url[i].split('=');
            if (urlparam[0] == param) {
                return urlparam[1];
            }
            else
                return false;
        }
    }

有人可以指导我从 Querystring 中获取名称值后我应该做什么吗?

您可以尝试使用

$("#Referral").val(name);

这里是示例

http://jsbin.com/nafexayuqo/edit?html,js,output

从这里引用:

首先编写一个函数以从 URL 获取当前值以供参考。

function getUrlParameter(sParam)
{
    var sPageURL = window.location.search.substring(1);
    var sURLVariables = sPageURL.split('&');
    for (var i = 0; i < sURLVariables.length; i++) 
    {
        var sParameterName = sURLVariables[i].split('=');
        if (sParameterName[0] == sParam) 
        {
            return sParameterName[1];
        }
    }
}   
var ref_val = getUrlParameter('Referral');
var ref_text = ref_val.split(' ');
$('#Referral .items').empty();
$('#Referral .items').append("<li class='item' data-value='"+ref_val+"'>"+ref_text[0]+"</li>");

希望这能解决您的问题

谢谢