2016-05-17 54 views
1

我做了一些搜索,并找不到如何做到这一点的确切答案(特别是像我这样的noob)我想设置基于关闭页面加载下拉值href超链接中的变量。从JavaScript超链接加载的默认下拉值

实例默认下拉:mywebsite.com &值= 4

当页面loaded.Below是下拉选择的HTML,但我目前还没有的JavaScript这将适用与值4相关的下拉菜单项为了它。它是否有可能从超链接中拉取变量?谢谢你的帮助。

<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

如果您拥有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(因此它保证位于URL的末尾)。

+0

我认为这将实际上工作!在控制台中做了一些快速混乱的测试,并且正确地解决了问题。谢啦! –