服务器端 如何 取得 客户端脚本 动态生成 控件的 值

wis2007 2009-11-09 04:55:00
服务器端 如何 取得 客户端脚本 动态生成 控件的 值?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

fujian.htm

<HTML>
<HEAD>
<script type="text/javascript">

/* 检测浏览器类型 */
function isIE()
{
if(document.attachEvent)
{
return true;
}
else
{
return false;
}
}


/* 获取指定元素在页面的位置 */
function getPosition(obj)
{
var top=0,left=0;
while(obj.offsetParent)
{
top+=obj.offsetTop;
left+=obj.offsetLeft;
obj=obj.offsetParent;
}
return {top:top,left:left};
}

/* IE下的附件添加提示 */
function getIeTip(form)
{
var str=parseInt(form.getAttribute("count"))>=0?"添加附件":"添加附件";
var cssStr="font:12px Arial;color:#00f;text-decoration:underline";
var tipDiv=document.createElement("div");
tipDiv.style.cssText=cssStr;
tipDiv.innerHTML=str;
return tipDiv;
}

/*IE下的文件按选择显示*/
function updateIeInput(input,tip)
{
var parent=input.parentNode;
parent.style.zIndex=-2;
tip.style.textDecoration="none";
tip.style.color="#000000";
tip.style.fontWeight="bold";
tip.innerHTML=input.value;
tip.appendChild(getRemove(input.form,parent,tip));
}

/*创建IE下的文件选择框*/
function createIeInput(form,inputIndex)
{
var i=inputIndex?inputIndex:0;
var tip=getIeTip(form);
tip.setAttribute("idt",i)
form.appendChild(tip);
var inputDiv=document.createElement("div");
var input=document.createElement("input");
input.setAttribute("type","file");
input.setAttribute("name","file_"+i);
input.style.cssText="width:0";
input.onchange=function(){
createIeInput(this.form,parseInt(this.form.getAttribute("count"))+1);
updateIeInput(this,tip);
rePlaceInput(this.form);
}
inputDiv.appendChild(input);
inputDiv.setAttribute("idi",i);
var position=getPosition(tip);
inputDiv.style.cssText="position:absolute;top:"+position.top+"px;left:"+position.left+"px;filter:alpha(opacity=0);z-index:2";
form.appendChild(inputDiv);
form.setAttribute("count",i);

}

/* 重新置位*/
function rePlaceInput(parent)
{
var tipAry=new Array();
var inputAry=new Array();
for(j=0;j <parent.childNodes.length;j++)
{
var node=parent.childNodes[j];
if(node.nodeType==1)
{
if(node.getAttribute("idi"))
{
inputAry.push(node);
}
else if(node.getAttribute("idt"))
{
tipAry.push(node);
}
}
}
for(j=0;j <tipAry.length;j++)
{
var position=getPosition(tipAry[j]);
inputAry[j].style.top=position.top+"px";
inputAry[j].style.left=position.left+"px";
}
return tipAry;
}

/*初始化IE*/
function initIE()
{
var form=document.forms["uploadForm"];
createIeInput(form);
window.onresize=function(){
rePlaceInput(form);
}
}

/* 初始化 */
function init()
{
initIE();
}
</script>
</HEAD>

<BODY onload="init()">
<form name="uploadForm" action="/upload.do" target="upload" enctype="multipart/form-data" method="post">
</form>
<iframe name="upload" style="display:none"> </iframe>
</BODY> </HTML>



index.asp
<%
这里面应该如何 得到fujian.htm 里面动态生成的控件呢? 也就是相当于 javascript 里面

var inputs=window.frames["fujian"].document.all.tags("input");
for(var me=0;me<inputs.length-1;me++)
{
alert(inputs[me].value);
}
这部分功能
%>
...全文
136 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wis2007 2009-11-10
  • 打赏
  • 举报
回复
大哥们,谢谢。
wis2007 2009-11-10
  • 打赏
  • 举报
回复
那位大哥给个简单的例子???
sunli555 2009-11-10
  • 打赏
  • 举报
回复
客户端传值给服务器端,就两种方法:
1.递交表单或者跳转页面赋值;
2.AJAX提交要赋值的东西。
wis2007 2009-11-10
  • 打赏
  • 举报
回复
如何把得到的值 赋给 hidden呢? 然后用request.form() 在服务器端取出来。

急急急!!!!!!!!!
  • 打赏
  • 举报
回复
其实很简单的道理,客户端和服务端的交互,无非就是key-value

key是什么呢就是 客户端控件的name 而value就是数据

关键点是,如何让服务端知道客户端的key,我一般的方案有两种一种是有规则的生成,这样从request里遍历

还有一种是把name保存在一个hidden里用逗号分割,这样先从hidden里取,再用request(arr(i))

类似于这样的方法遍历取出,其实思想很简单,这样也是微软设计结构的本意
街头小贩 2009-11-09
  • 打赏
  • 举报
回复
以前作个一个动态给产品加参数和值的页!用的是textarea把生成的input名称和值送到后台处理!DC看看有没有好的方案

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧