用于根据文档准备就绪的URL参数选择选项并选中复选框的功能

时间:2018-11-21 13:19:32

标签: javascript

我需要一个功能来循环所有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并不是这种情况的选择。

2 个答案:

答案 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);
                    }
                });