这两天要帮别人改一个程序,原来程序中GET方式提交很多,现在想把GET方式改成POST方式提交,为了改动更少一点,只好添加一个空的表单,在提交时,动态把属性加到表单中。
<form name="menuSubmit" id="menuSubmit" action="" method="post">
</form>
<script language="javascript">
function submitPost(url){
intPos=url.indexOf("?");
if(intPos > 0){
document.menuSubmit.action = url.substr(0, intPos);
strRight=url.substr(intPos+1);
arrTmp=strRight.split("&");
for(var i=0;i<arrTmp.length;i++){
arrTemp=arrTmp[i].split("=");
createInput('menuSubmit', arrTemp[0], arrTemp[1], 'hidden');
}
} else {
document.menuSubmit.action = url;
}
document.menuSubmit.submit();
}
function formSubmitPost(formName, url){
form = eval("document."+formName);
intPos=url.indexOf("?");
if(intPos > 0){
form.action = url.substr(0, intPos);
strRight=url.substr(intPos+1);
arrTmp=strRight.split("&");
for(var i=0;i<arrTmp.length;i++){
arrTemp=arrTmp[i].split("=");
createInput(formName, arrTemp[0], arrTemp[1], 'hidden');
}
} else {
form.action = url;
}
}
function createInput(formName, name, value, type){
form = eval("document."+formName);
var oinput = document.createElement("input");
oinput.setAttribute("value", value);
oinput.setAttribute("id", name);
oinput.setAttribute("name", name);
oinput.setAttribute("type", type);
form.appendChild(oinput);
}
</script>
这样页面跳转时,直接调用submitPost方法,把传入的参数进行分解,在动态添加到form表单中进行提交,这样比较好。
formSubmitPost方法,是用户在点表单提交时,原来表单的action中也有get方式,为了把action中的参数也动态添加的表单中才加此方法,formName是表单的名字。