2017-02-26 6 views
0

ich einen Verkaufstrichter habe, wo ich für eine Adresse über die Google API abfragt, erhält man die Abfragezeichenfolge wie folgt aus:Abfrage-Zeichenfolge mit Hilfe des Formular Wert ändern

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

ich eine Funktion gefunden habe die ich verwendet habe, um die Abfrage-String wie folgt zu greifen:

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, " ")); 
} 

ich habe dann (ohne Sonderzeichen) bekommen die Query-String richtig formatiert angezeigt werden, wie ich in einem Div auf der Seite mit der ID möchten address_name, aber wenn ich versuche, die selbe Adresse in ein Eingabefeld mit derselben Variablen einzufügen, die sich daraus ergibt mit dem Eingabetext als 123 + Yonge + Street + Toronto + ON + Kanada.

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

Während es perfekt mit dem Einführen in einen DIV funktioniert, wenn ich versuche, es in ein Eingabefeld setzen die Räume mit einem „+“ ersetzt. Gibt es irgendeine Art von spezieller Formatierung oder Regel, die mir fehlt, wenn ich ein Eingabeformular anstelle eines Div benutze?

+0

Können Sie den Code veröffentlichen, in dem Sie den Wert dem Eingabefeld zuweisen? – Psi

+0

@Psi es ist schon da – Phil

+1

Ich werde blind ich denke ... – Psi

Antwort

0

Wie unterscheidet sich Ihr Code von diesem Arbeitsbeispiel?

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

Während dies würde einen großen Kommentar (mit einem JSFiddle Beispiel) machen, beantwortet es nicht wirklich die Frage – Phil

+1

Ich dachte, dass, wenn OP einige weitere Informationen zur Verfügung stellte, ich die Antwort anpassen könnte, um hilfreicher zu sein. Sie haben wahrscheinlich Recht, dass dies besser für einen Kommentar geeignet gewesen wäre, aber ich bevorzuge SO-Snippets über JSFiddles. – gyre

+0

ID unterscheidet sich nicht durch das Aussehen, es muss etwas anderes auf der Seite passieren. Es wird über Clickfunnels verwendet und das Formular wird durch Activecampaign integriert. Es wird vermutet, dass etwas passiert, das nicht mit dem Code in Zusammenhang steht. Seite ist sell.2percentaltyedgege.ca wenn jemand schauen möchte. Es scheint nie ein Wert dem Eingang Im zugewiesen zu sein, der versucht, sich zu ändern, es sei denn manuell eingestellt. – Phrosty30

0

-Code richtig war, es ein Problem mit dem Eingabefeld statt eines Textfeldes versteckt wurde.

Verwandte Themen