2016-05-05 47 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

相關問題