2014-10-31 34 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); 
} 
相关问题