2017-02-26 30 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

代码是正确的,有一个与输入栏被隐藏,而不是文本字段的问题。