2017-02-26 49 views
0

我有一個銷售渠道,我問過谷歌API的地址,它會返回類似這樣的查詢字符串:使用查詢字符串來改變形態價值

123+Yonge+Street%2C+Toronto%2C+ON%2C+Canada 

我發現一個函數我已經用搶的查詢字符串這樣的:

function getParameterByName(name, url) { 
if (!url) { 
    url = window.location.href; 
} 
name = name.replace(/[\[\]]/g, "\\$&"); 
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), 
    results = regex.exec(url); 
if (!results) return null; 
if (!results[2]) return ''; 
return decodeURIComponent(results[2].replace(/\+/g, " ")); 
} 

話,我已經得到了顯示的查詢字符串格式正確的(無特殊字符)我怎麼會喜歡一個div的ID在頁面上地址名,但是當我嘗試添加相同的地址到一個輸入字段與它產生的相同變量輸入文字爲123 + Yonge + Street + Toronto + ON + Canada。

var address = getParameterByName('address'); 
document.getElementById("address_name").innerHTML=address; 
document.getElementById("formaddress").value = address; 

雖然它可以完美地插入到DIV中,但我試圖將它放入輸入字段時,空格會被替換爲「+」。有沒有使用輸入表單而不是Div的某種特殊格式或規則?

+0

你可以發佈代碼分配給輸入字段的值嗎? – Psi

+0

@Psi它已經存在 – Phil

+1

我正在失明,我猜... – Psi

回答

0

你的代碼與這個工作示例有什麼不同?

function getParameterByName(name, url) { 
 
if (!url) { 
 
    url = window.location.href; 
 
} 
 
name = name.replace(/[\[\]]/g, "\\$&"); 
 
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), 
 
    results = regex.exec(url); 
 
if (!results) return null; 
 
if (!results[2]) return ''; 
 
return decodeURIComponent(results[2].replace(/\+/g, " ")); 
 
} 
 

 
var address = getParameterByName('address', '?address=123+Yonge+Street%2C+Toronto%2C+ON%2C+Canada'); 
 
document.getElementById("address_name").innerHTML=address; 
 
document.getElementById("formaddress").value = address;
<div id="address_name"></div> 
 
<input id="formaddress" type="text">

+0

儘管這會做出很好的評論(使用JSFiddle示例),但它並沒有真正回答 – Phil

+1

這個問題我認爲如果OP提供了更多信息,我可以調整答案以提供更多幫助。你可能是對的,這可能更適合評論,但我更喜歡使用JSFiddles的SO片段。 – gyre

+0

ID不會因爲它的外觀而有所不同,因此頁面內必須有其他內容。它通過Clickfunnels被使用,表單通過activecampaign被整合,猜測發生了一些與代碼無關的事情。如果有人想看,頁面是sell.2percentrealtyedge.ca。除非手動設置,否則似乎沒有賦予輸入Im試圖更改的值。 – Phrosty30

0

代碼是正確的,有一個與輸入欄被隱藏,而不是文本字段的問題。