我基本上試圖用用戶輸入創建一個url友好的查詢字符串。這些變量替換空格和@並將它們全部加在一起,然後函數應該在段落中顯示URL。這讓我感到非常愚蠢,因爲我知道這很簡單,我搞砸了。請指出我的錯誤。作爲一個方面說明,是否有更好的方法來做所有這些替換而沒有所有變量?簡單的JavaScript字符串變量返回「undefined」
以下代碼應返回類似於以下的字符串: https://www.somewebsite.com/formhandler.php? & FNAME =戈迪&地址= 123 +主+街道&電子郵件=東西%40somewhere.com
<SCRIPT TYPE="TEXT/JAVASCRIPT">
var fnstr = document.getElementById("firstname").value;
var fncutspace = fnstr.trim();
var fnrepspace = fncutspace.replace(/ /g,"+");
var fnfinal = fnrepspace.replace("@","%40");
var adstr = document.getElementById("address").value;
var adcutspace = adstr.trim();
var adrepspace = adcutspace.replace(/ /g,"+");
var adfinal = adrepspace.replace("@","%40");
var emstr = emdocument.getElementById("firstname").value;
var emcutspace = emstr.trim();
var emrepspace = emcutspace.replace(/ /g,"+");
var emfinal = emrepspace.replace("@","%40");
var domurl = "https://www.somewebsite.com/formhandler.php?&fname=";
var secondchunk = "&address=";
var thirdchunk = "&email=";
var url = domurl + fnfinal + secondchunk + adfinal + thirdchunk + emfinal;
function createurl() {
document.getElementById("demo").innerHTML = url;
}
</SCRIPT>
<FORM action="javascript:createurl()">
Fisrt Name:<INPUT id="firstname" TYPE="TEXT"><br>
street address:<INPUT id="address" TYPE="TEXT"><br>
email address:<INPUT id="email" TYPE="TEXT"><br>
<input type="submit" value="GO">
</FORM>
<p id="demo"></p>
謝謝,這是一個正確的方向的重要提示!但是當我把變量放在函數中時,我不再會得到「undefined」。什麼都沒有發生。任何想法爲什麼這可能是? –
@Gordie你在使用[JavaScript調試器](http://www.browserstack.com/debugging-tools)嗎?如果沒有,你真的應該爲你的瀏覽器找到一個。 [試一試](http://jsfiddle.net/aHA2e/),我得到錯誤「* emdocument is not defined *。」。我認爲這應該是「文檔」而不是「文檔」? –
我很尷尬謝謝,我一定會找到一個。我在記事本中寫了大部分內容,他們不允許瀏覽器插件。謝謝! –