日期:2014-05-16  浏览次数:20424 次

动态确定FORM的范围
动态确定FORM的范围——页面上本来无 <FORM> ,提交时动态指定,能做到吗?

------解决方案--------------------
好像不行 但可以变相实现
可以将所有需要提交的元素 移动到form里面
------解决方案--------------------
很早以前写的一个东西,


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN ">
<html>
<head>
<title> New Document </title>
<meta name= "Generator " content= "EditPlus ">
<meta name= "Author " content= " ">
<meta name= "Keywords " content= " ">
<meta name= "Description " content= " ">
<script language= "javascript ">
///////////////////////////////////////////////////////////////////////////////////////
//类 名:cls_formPost
//说 明:直接使用客户端脚本生成临时的Form表单,然后提交数据;
//作 者:CarlosYoung
//创 建 时 间:2006-05-16
///////////////////////////////////////////////////////////////////////////////////////
//公共方法说明:
//---------cls_formPost.setTarget--------
//说明:设置接受提交数据的窗口
//参数:sTagt---对象ID;默认为 '_self ',即自身;
//-----------cls_formPost.add------------
//说明:添加传递的字串
//参数:sName---传递时的变量名.
// sMsg----传递的变量值。
//----------cls_formPost.post------------
//说明:提交数据
//参数:sPage----处理提交数据的页面,即Form的action对应的CGI页面。
////////////////////////////////////////////////////////////////////////////////////////

function cls_formPost(){
//类初始化;
this.aMsg=new Array();
this.fname= 'ftmp ';
this.target= '_self ';
//Create a name for the temp form
while(document.all(this.fname))
{this.fname=this.fname+ '_tmp ';}
//document.body.insertAdjacentHTML( 'afterBegin ', ' <div> DIV '+this.fname+ ' <form id= " '+this.fname+ ' " name= " '+this.fname+ ' " method= "POST "> </form> </div> ')
document.body.insertAdjacentHTML( 'afterBegin ', ' <div style= "POSITION:absolute;visibility:hidden; "> <form id= " '+this.fname+ ' " name= " '+this.fname+ ' " method= "POST " action= " "> </form> </div> ')
}

cls_formPost.prototype.setTarget=function(sTagt){
//
document.all(this.fname).target=sTagt;
}

cls_formPost.prototype.add=function(sName,sMsg){
if(sMsg!=null && sName!=null){
var obj=document.getElementById(this.fname);
obj.insertAdjacentHTML( 'afterBegin ', ' <input type= "hidden " name= " '+sName+ ' " value= " '+sMsg+ ' "> ')
}
else{
alert( 'Arguments error! ');
}
}

cls_formPost.prototype.post=function(sPage){
if(sPage!=null){
var obj=document.getElementById(this.fname);
obj.action=sPage;
obj.submit();
}
else{
alert( 'You must assign a page name before post! ');
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////


function subit()
{
var fmp=new cls_formPost();


fmp.add( 'a ',document.all.a.value);
/*
可以有多个fmp.add(,); //添加要提交的数据
.....
*/
fmp.post( '要提交到的页面 ');
}
</script>
</head>

<body>
<input id= "a " value= "dd ">
<button