2016-05-05 45 views
1

我在网页上获得了GET请求,并带有多维复选框。 GET请求应该是这样的:Javascript获取URL参数,然后触发点击复选框

&company_state[AKERSHUS]=AKERSHUS&company_state[AKERSHUS][]=ASKER&company_state[SOGN+OG+FJORDANE]=SOGN+OG+FJORDANE&company_state[SOGN+OG+FJORDANE][]=ASKVOLL 

正如你所看到的,company_state是一个数组,再次至极包含的值的数组。

是否可以使用jQuery或纯JS获取URL参数,并触发点击具有相同名称(company_state,company_municipality)和值的复选框?

我试过使用这个,但是这似乎并不适用于这个目的来获取参数。

function getQueryParams(qs) { 
    qs = qs.split("+").join(" "); 
    var params = {}, 
    tokens, 
    re = /[?&]?([^=]+)=([^&]*)/g; 
    while (tokens = re.exec(qs)) { 
    params[decodeURIComponent(tokens[1])] = decodeURIComponent(tokens[2]); 
    } 
    return params; 
} 

在此先感谢。

编辑:enter image description here

给出了这样的结果在控制台:

enter image description here

回答

1

您可以分析查询字符串作为数组, 然后遍历数组并提取键和值。

代码是这样的:

function getQueryParameters(str) { 
     return (str || document.location.search).replace(/(^\?)/,'').split("&").map(
     function(n){ 
      return n = n.split("="),this[n[0]] = n[1],this; 
     }.bind({}))[0]; 
    } 

var url = "&company_state[AKERSHUS]=AKERSHUS&company_state[AKERSHUS[]=ASKER&company_state[SOGN+OG+FJORDANE]=SOGN+OG+FJORDANE&company_state[SOGN+OG+FJORDANE][]=ASKVOLL"; 

var arr = getQueryParameters(url); 


for(var a in arr){ 
    console.log("key:" , a.substr('company_state'.length), " value:" , arr[a]); 
} 

你有here一个活生生的例子。

+0

它看起来并不像它应该那样工作。 company_state [value]也可能有一组值。 像这样: 'VAR URL =“&company_state [胡斯] =胡斯&company_state [胡斯[] = ASKER&company_state [SOGN + OG +菲尤拉讷] = SOGN + OG +菲尤拉讷&company_state [SOGN + OG +菲尤拉讷] [] = ASKVOLL&company_state [SOGN + OG + FJORDANE] [] = EID“' 正如你所看到的,SOGN + OG + FJORDANE有两个子值。 – Kaizokupuffball

+0

你能用编辑结果的例子来编辑你的文章吗? – Ygalbel

+0

在那里,添加了编辑 – Kaizokupuffball

相关问题