ホームページにフォームがあり、クライアント側でのみ使用する別のページに入力フィールドの値を渡そうとしています。問題は、関数を実行する前に、渡された値を別のフォームフィールドに再表示したいのですが、REGEXを使用して「+」文字を置き換えることができないようです(間隔を維持したい)。あまり制御せずにこれを達成する方法はありますか?
1ページ目フォーム:
<form id="dlrhpform" type="GET" action="/dealer-locator">
<div id="hp-form-input">
<div style="padding-left:20px;">
<p>Enter address or zip code:</p>
<input style="float:left;" type="text" id="hpaddress" name="hpaddress"/>
</div>
</div>
<a href="javascript:;" onmouseover="MM_swapImage('hpsubmitbtn','','/btn_go_on.png',1)" onmouseout="MM_swapImgRestore()" />
<input onClick="_gaq.push(['_setAccount', 'UA-XXXXXXX-1'],['_trackEvent','Dealer Locator','Input Parameter', document.getElementById('hpaddress').value]);" style="position:relative; z-index:9999;" type="image" id="hpsubmitbtn" src="/btn_go.png" border="0" width="20" height="21" alt="hpsubmitbtn"/>
</form>
2ページ目のフォーム:
<form name="user-location" id="user-location" method="post" action="#">
<div id="form-input" name="form-input">
<label for="address">Enter Address or Zip Code:</label>
<input type="text" id="address" name="address" style="width:200px;"/>
</div>
<div id="submit-btn"><input name="fetch" type="image" src="/searchbutton.png" onclick="address.value=address.value.replace(/,/g,''); _gaq.push(['_setAccount', 'UA-XXXXXXX-1'],['_trackEvent','Dealer Locator','Input Parameter', document.getElementById('address').value]);"/></div>
</form>
2ページ目のスクリプト:
//Return Home Page Address From URL
var urladdress;
if(document.URL.indexOf("hpaddress") >= 0)
{
function getParams()
{
var idx = document.URL.indexOf('?');
parent.params = new Array();
if (idx != -1)
{
var pairs = document.URL.substring(idx+1, document.URL.length).split('&');
for (var i=0; i<pairs.length; i++)
{
nameVal = pairs[i].split('=');
parent.params[nameVal[0]] = nameVal[1];
}
}
return params;
}
params = getParams();
urladdress = unescape(params["hpaddress"]);
}
window.onload = function()
{
if(typeof urladdress !== 'undefined')
{
document.getElementById("address").value = urladdress;
}
};