使用JavaScript

时间:2016-05-17 21:52:39

标签: javascript jquery html hyperlink

我做了一些搜索,无法找到关于如何做到这一点的确切答案(特别是对于像我这样的菜鸟)我想根据href超链接中的变量设置页面加载的下拉值。

默认下拉列表示例:mywebsite.com& value = 4

这将在页面加载时应用与值4关联的下拉项。下面是下拉选择器的HTML,但我目前没有JavaScript。是否有可能从超链接中提取变量?谢谢你的帮助。

<select id="subject" name="subjectlist" size="1" onchange="SetActivity();">
<option value="1^Non-Urgent Medical Question">Non-Urgent Medical Question</option>
<option value="2^Medication Question">Medication Question</option>
<option value="3^Test Results Question">Test Results Question</option>
<option value="4^Visit Follow-Up Question">Visit Follow-Up Question</option>
<option value="5^Medical Record Question / Correction">Medical Record Question / Correction</option>
</select>

1 个答案:

答案 0 :(得分:1)

如果您可以控制URL,则可以更改格式并使用哈希值。

因此对于value=4,网址为:http://example.com/#value=4

if (window.location.hash.length > 0){
    var matches = window.location.hash.match(/value=([0-9]+)/i);
    if (matches.length > 1){
        var value = matches[1];
        $("#subject option[value^='"+value+"^']").attr('selected', true);
    }
}

或者,您可以filter基于值的选项。比上面的代码更安全:

if (window.location.hash.length > 0){
    var matches = window.location.hash.match(/value=([0-9]+)/i);
    if (matches.length > 1){
        var value = matches[1];
        $("#subject option").filter(function(){
            return $(this).val().indexOf(value+'^') === 0;
        }).attr('selected', true);
    }
}

如果您不想使用哈希(#),则可以使用window.location.href代替。您只需稍微修改RegEx(因此它保证位于网址的末尾)。