我做了一些搜索,无法找到关于如何做到这一点的确切答案(特别是对于像我这样的菜鸟)我想根据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>
答案 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
(因此它保证位于网址的末尾)。