高分求教:怎样取得一个控件的位置?

garim 2005-08-17 06:12:52
我的asp网页有若干表单,表单内有若干控件,我想要在按下某个按钮时,将一个select控件放到制定的某个input控件上面,怎么做?
...全文
88 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
garim 2005-08-17
  • 打赏
  • 举报
回复
还是不行,现将我的代码贴在下面供高手指点
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="../include/conn.asp"-->
<html>
<script language="JavaScript" type="text/JavaScript">
<!--
//将select控件放置到brand输入控件的上方
function ShowAllCtl(i)
{
if(document.msg.TotalItems.value>0)
{
brand_position.style.display="inline";

//根据wanghui0380(放歌)的建议,增加的代码
var t=document.form[i].brand.offsetTop;
var l=document.form[i].brand.offsetLeft;
while(document.form[i].brand=document.form[i].brand.offsetParent)
{
t+=document.form[i].brand.offsetTop;
l+=document.form[i].brand.offsetLeft;
}
brand_position.style.left=l
brand_position.style.top=t
//------------

document.form[i].brand.disabled=false;
}
else
{
brand_position.style.display="inline";

//根据wanghui0380(放歌)的建议,增加的代码
var t=document.form.brand.offsetTop;
var l=document.form.brand.offsetLeft;
while(document.form.brand=document.form.brand.offsetParent)
{
t+=document.form.brand.offsetTop;
l+=document.form.brand.offsetLeft;
}
brand_position.style.left=l
brand_position.style.top=t
//------------

document.form.brand.disabled=false;
}
}

//恢复状态,隐藏select控件
function HideAllCtl(i)
{
if(document.msg.TotalItems.value>0)
{
document.form[i].brand.value=brand_alert.value;
brand_position.style.display="none";
document.form[i].brand.disabled=true;
}
else
{
document.form.brand.value=brand_alert.value;
brand_position.style.display="none";
document.form.brand.disabled=true;
}
}

//-->
</script>
<head>
<title>商品管理</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<center>
<body>

<table cellpadding="0" cellspacing="0" border="0" id="product_list">
<tr>
<td>操作</td>
<td>品牌</td>
<td>价格</td>
<td>确认</td>
</tr>
<%
sql="select d.dsc p_brand,a.ori_value from BB_commodity a,bb_dic_brand d where substring(a.id,3,2)=d.id"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
i=-1
Do While Not rs.EOF
i=i+1
%>
<form action="..." method="post" name="form">
<tr>
<td><input name="change" type="button" value="修改" onClick="ShowAllCtl(<%=i%>)"></td>
<td><input name="brand" disabled value="<%=rs(0)%>"></td>
<td><input name="price" disabled value="<%=rs(1)%>"></td>
<td><input name="ok" type=button value="确认" onClick="HideAllCtl(<%=i%>)"></td>
</tr>
</form>
<%
rs.MoveNext
Loop
set rs=nothing
%>

<!--记录个数-->
<form action="" name="msg"><input name="TotalItems" type="hidden" value=<%=i%>></form>

</table>

<!--需要放置的控件-->
<span id="brand_position" style="position: absolute; display:none">
<select name="brand_alert" style="width:120" >
<%
set rs=server.createobject("adodb.recordset")
sql="select id,dsc from bb_DIC_brand"
rs.open sql,conn
do while not rs.eof
%>
<option value="<%=rs("id")%>"><%=rs("dsc")%></option>
<%
rs.movenext
loop
rs.close
%>
</select>
</span>

</body>
</center>
</body>
</html>

返回的错误是: 对象不支持此属性或方法
wanghui0380 2005-08-17
  • 打赏
  • 举报
回复
取得控件位置
<script language="javascript">
function getoffset(e)
{
var t=e.offsetTop;
var l=e.offsetLeft;
while(e=e.offsetParent)
{
t+=e.offsetTop;
l+=e.offsetLeft;
}
var rec = new Array(1);
rec[0] = t;
rec[1] = l;
return rec
}
</script>

不过不建议这样做,net205(干咱这行的,缺得就是女人+金钱) 的方法不错

你的要求可以这样做吧,在你那个input控件上面加上<div id=objpos></div>,,按下按钮时把要加的select代码放到那个div里,objpos.innerHTML="<select....."
net205 2005-08-17
  • 打赏
  • 举报
回复
怎样取得一个控件的位置你试试现在的,,,,,(不知道是哪组,估计是下组吧)
offsetLeft,offsetTop
pixelTop,pixelLeft

你的要求可以这样做吧,在你那个input控件上面加上<div id=objpos></div>,,按下按钮时把要加的select代码放到那个div里,objpos.innerHTML="<select....."
Pigmai 2005-08-17
  • 打赏
  • 举报
回复
关注一下

————————————————————————————
http://www.81M.Net

网络程序学习网,内含大量技术文章,代码下载,欢迎到访

28,404

社区成员

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

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