2014-10-31 38 views
0

有無論如何,我可以改變輸出從如何將表單顯示從=更改爲:?

名稱:=丹尼爾名稱:丹尼爾所有以下?

圖片在這個網址>http://imgur.com/dgOMjhy

<h2>Your details have been submitted!</h2> 
<h2>You have entered the following data: </h2> 
<script type="text/javascript"> 
    var formData = location.search; 
    formData = formData.substring(1, formData.length); 
    while (formData.indexOf("+") != -1) { 
     formData = formData.replace("+", " "); 
    } 

    formData = unescape(formData); 
    var formArray = formData.split("&"); 
    document.write("<p>"); 
    for (var i = 0; i < formArray.length; ++i) { 
     document.writeln(formArray[i] + "<br />"); 
    } 
    document.write("</p>"); 

</script> 
+0

你可以檢查其字母數字,你可以captalize的字符串 – Hackaholic 2014-10-31 13:52:33

+0

你不應該使用document.write()的。 – 2014-10-31 13:54:53

+0

@Godisgood這對任何人都沒有幫助。雖然我同意,但請提供一些推理 – Ian 2014-10-31 13:57:27

回答

0

當然,不過這不會讓你很遠。 更改此行:

document.writeln(formArray[i] + "<br />"); 

document.writeln(formArray[i].replace("=", ": ") + "<br />"); 

但是,如果我是你,我會在數據解析成用於進一步操作的實際可用的目標工作,目前你只能通過做字符串操作工作頁面URL。

編輯:爲了擴展您的評論發佈到這個職位的問題:

首先,你應該嘗試從通過URL移動數據移開或GET請求,因爲這些都是非常明顯,限制編碼,易於操作和記錄。特別是信用卡信息等數據不應該嵌入到URL中。

總之,對於解析讓我們開始進一步分裂您formArray和存儲在一個對象中的鍵值對:

var formArray = formData.split("&"); 
var formDataObj = {}; //in this we will store the data 

//let's assume here that you have no key duplicates in your data 
//and that it is always properly formatted 
formArray.forEach(function (item) { 
    var key = item.split("=")[0]; 
    var value = item.split("=")[1]; 
    formDataObj[key] = value; 
}); 

//if you processed your data like this you can then access it more precisely like so 
document.writeln("<p>Customer " + formDataObj.customerNumber + " has card number " + formDataObj.cardNumber + "</p>"); 

我認爲這是很明顯這可怎麼是有利的。

+0

謝謝!這非常有幫助!我只是跟着我的教科書,而我的老師根本沒有教過很多JavaScript。你是否推薦任何教程將數據解析爲實際可用的對象以供進一步操作? – Daniel 2014-10-31 14:02:36

+0

我更新了我的答案。 – kasoban 2014-10-31 15:07:57

0

,你可以使用一個輔助功能

function capitalize(a) 
{ 
return a[0].toUpperCase() + a.slice(1); 
} 
相關問題