我需要一个功能来循环所有URL参数并根据 id和值自动选择选项,以及基于名称和值的自动复选框。我已经在使用getUrlParameter
函数,该函数位于https://stackoverflow.com/a/21903119,所以我需要的是一种循环,在document.ready的URL中找到所有参数,并设置选择选项并相应地输入复选框。
url:htt .... // domain.com/网站/页面?param1 = val1&param2 = val2
,如果将param1,param2与任何选择选项ID或复选框名称匹配: 1)如果是选择选项,则检查相应的值...或 2)if是复选框,并且如果具有与url param中显示的值相同的值,则进行检查
编辑:由于有人编辑了我的标题,我不得不提到:它应该是javascript,而jQuery并不是这种情况的选择。
答案 0 :(得分:1)
我试图达到您想要的目标,希望对您有所帮助。
您可以使用以下代码进行操作:
var sPageURL = window.location.search.substring(1);
var sURLVariables = sPageURL.split('&');
for (i in sURLVariables) {
let sParameter =sURLVariables[i].split('=');
let name=sParameter[0]
let value=decodeURIComponent(sParameter[1])
//Here is a loop
//Do something for each name-value pair
let collection = document.getElementsByName(name)
for(j in collection){
//searching for matching names (for checkboxes)
if(collection[j].value=value)collection[j].checked=true
}
let node = document.getElementById(name)
//checking element by ID (for select lists)
if(node){
node.value=value
}
}
示例:
查询字符串:
?a=b&c=d&e=f
HTML:
<select id="a"><!-- Will be set to b-->
<option>a</option>
<option>b</option>
<option>c</option>
</select>
<input type="checkbox" name="c" value="d"/><!--Will be checked-->
<input type="checkbox" name="c" value="f"/><!--Will NOT be checked-->
<input type="checkbox" name="e" value="d"/><!--Will NOT be checked-->
答案 1 :(得分:0)
您可以执行以下操作:
jQuery.each(parameters, function (index, item){
var element = elt.find("[name=" + item.name + "]");
if (element.is("select")) {
element.find("option[value=" + item.value + "]").prop("selected", true);
} else {
element.val(item.value);
}
});