表单动态添加属性的方法
这两天要帮别人改一个程序,原来程序中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是表单的名字。
?