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

时间:2015-01-06 02:41:13

标签: javascript jquery

我是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代码的工作方式是,您在下拉列表中选择的任何内容都将位于隐藏字段中:引用(此部分已通过其他JS库完成)。

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

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

我希望在我的下拉列表中选择基思,我的下拉列表应该被禁用。这是我目前在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获取名称值后应该怎么做吗?

2 个答案:

答案 0 :(得分:0)

从这里提到:https://stackoverflow.com/a/21903119/4119740

首先编写一个函数以从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>");

希望这可以解决您的问题

谢谢

答案 1 :(得分:-1)

您可以尝试使用

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

这里是样本

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