Ich möchte per Javascript Code einen Wert wie C# in der URL übertragen.
Wie kann man den Wert C# von einem HTml Formular übertragen ohne dass # falsch übernommen wird ?
Lösung:
Mit encodeURIComponent(Text) kann man Ascii Zeichen wie # ; . in eine URL übliche Zeichenkombination umwandeln.
Beispiel in javascript
sSearch = encodeURIComponent(sSearch).replace(/'/g, "%27").replace(/"/g, "%22"); |
HTML Formular
<form id="frmList" style="display:inline-block" onsubmit="return send_Search()"> <input id="tbxSearch" name="tbxSearch" value="@sSearch" style="width:200px;color:black"> Ort: <input id="tbxOrt" name="tbxOrt" value="@sOrt" style="width:80px;color:black " /> <button type="submit" value="⯈">⯈</button> </form> |
Javascript Function zum codieren eines Feld-Wertes in eine URL
//============< Layout >============ //*layout Menu, Search-Input and Footer
function send_Search() { //------< send_Search() >------ var form = document.getElementById("frmSearch"); var input_Search = document.getElementById("tbxSearch"); var input_Ort = document.getElementById("tbxOrt"); var sSearch = input_Search.value; var sOrt = input_Ort.value;
var sURL = "/projects"; var sQuery = ""; if (sSearch != "") { //for c# sSearch = encodeURIComponent(sSearch).replace(/'/g, "%27").replace(/"/g, "%22"); sQuery = sQuery + "&s=" + sSearch; }
if (sOrt != "") { sOrt = encodeURIComponent(sOrt).replace(/'/g, "%27").replace(/"/g, "%22");; sQuery = sQuery + "&o=" + sOrt; } if (sQuery != "") { sQuery = sQuery.substr(1); sURL = sURL + "?" + sQuery; }
//obj.value = encodeURIComponent(unencoded).replace(/'/g,"%27").replace(/"/g,"%22");
//< send > window.location.href = sURL; //goto new URL return false; //stop send form //</ send > //------</ send_Search() >------ }
//========== |