最近在进行练习,碰到主要问题有两个:1.我想传递数组数据时怎么传递;2.明明用的是post,为什么老是跳转到doget().
然后在网上疯狂看各路大神秀骚操作。后面懂了之后,自己写了一篇,以此自励。
下面代码为用javascript使用form传递数据,已亲测。servlet代码就不填了。
<html>
<head><meta charset="UTF-8">
<title>page a</title>
<script type = "text/javascript">
var ar = new Array("a","b","c");
function submitArray(){
var form1 = document.createElement("form");
form1.id = "form1";
form1.name = "form1";
document.body.appendChild(form1);
var input = document.createElement("input");
input.name = "arr";
input.type = "text";
input.value = ar.length;
form1.appendChild(input);
//下面为提交数组数据
for(var i = 0;i<ar.length;i++){
var input = document.createElement("input");
alert(ar);
input.name = "arr"+i; //为了与其他name区分,个人习惯一物一名字
input.type = "text";
input.value = ar[i];
form1.appendChild(input);
}
form1.method = "post";
form1.action = "servlet/requestservlet"; //此处可能会出现问题。当把div换成button时,此处填写为form1.action = "requestservlet";暂不清楚此处原因。
form1.submit();
}
</script>
</head>
<body>
<div style = "width:100px;height:100px;background-color:yellow;" onclick = "submitArray()">a</div>
</body>
</html>
关于第二个问题:个人觉得一定是form.method = "post"填写错误;在javascript 中一旦错误就不执行,故此跳转到doget();
当写了form但没有添加button或submit时,用document.getElementById("form的id").submit();