怎样赋值给动态的input对象?我找遍了函数也不成!

tjgok 2002-11-21 07:17:21
问题在此处:
document.form1.serialno".i.".value"
我在HTML中定义了N个<input name=serialN>对象,
在JS中,怎样赋值给动态的input对象?
(当然,如果全用PHP写死脚本当然可以实现。)

function check(k)
{
for(i=1;i<= <? echo $number ?> ;i++){
if (eval("document.form1.serialno"+i+".value")==""){
document.form1.serialno".i.".value"=eval("document.form1.oldserialno"+k+".value");
var msg="已成功添加本序列号!\n";
}
}
alert(msg);
//document.form1.submit();
}
...全文
138 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
stroll 2002-11-22
  • 打赏
  • 举报
回复
哈……刚找到一个5.0的测试……通过了……那么……我不明白你为什么说不通过呢?是不是你代码书写不小心弄错了……虚惊一场~~
stroll 2002-11-22
  • 打赏
  • 举报
回复
To tjgok(谭):

我想弄清楚…… 你的IE的版本是多少?我让有也只有5.5/6.0的网友测试都

通过了,就是没找到一个5.0的……

对于document.formname["name"]这样的访问方式,从 for(key in obj)的可行性考虑,应该可以这样进行访问的呀……怎么会~~能不能告诉我你的IE版本,谢谢啦,要不然我以前写的HTC组件很多都要重写了……
stroll 2002-11-22
  • 打赏
  • 举报
回复
FT~~ 我还常用着~~难道是IE版本问题……?

我觉得eval()在处理如果需要引号过多的表达式的话不好看也不好处理

那就换个正规点的……

document.formname.all("name")

例子:
<body onclick='var i=1;alert(document.bb.all("T"+i).value)'>
<form name="bb">
<p>
<input type="text" name="T1" size="20" value="不要告诉我这次还不行……">
</p>
</form>
</body>
wangxj0600 2002-11-22
  • 打赏
  • 举报
回复
eval,还可以使用document.formName.elements[i]来得到元素。
tjgok 2002-11-22
  • 打赏
  • 举报
回复
3Q!
qiushuiwuhen(秋水无恨) 的方法试用通过了。
stroll(小逛)的测试不成。<_>
KiteGirl(小仙妹)你的方法在同一页面内处理较了,但在传参给下一页处理时,会有些麻烦了。
KiteGirl 2002-11-21
  • 打赏
  • 举报
回复
我的思路有点本质上的不同:创建i个INPUT元素,然后在全局数组pubSerials()里记载所有i个元素的引用。这样你可以利用pubSerials()来检索任何一个INPUT元素。pubSerials()的序号和name是一一对应的。想设置value只要pubSerials(N).value="楼主是个大坏蛋"就可以了。不用name来检索。当然你可以可以使用name(比如用于提交表单)。很抱歉我不会JavaScript,只能用VBScript给你例子,希望你能明白我的意思。

Dim pubSerials()
ReDim pubSerials(1 To i)

For tLoop=1 To i
Set pubSerials(tLoop)=SerialGetByCreate(document,Form1,"Serial" & tLoop )
Next

Function SerialGetByCreate(pDocument,pInsertObject,pName)
Set tElement=pDocument.createElement("<INPUT name='" & pName & "'>")
'document.createElement方法创建一个INPUT元素,Name必须在创建时刻给定。Set相当于JS里的Var
pInsertObject.insertAdjacentElement "beforeEnd",tElement
'插入元素到目标元素内部,beforeEnd是该元素的结尾之前,所有内容之后。
Set SerialGetByCreate=tElement
'函数返回INPUT的引用。
End Function

stroll 2002-11-21
  • 打赏
  • 举报
回复
我推荐使用 document.form[objectname].value的方式,这样程序编写比较容易。

if(document.form1["serialno"+i].value=="")
document.form1["serialno"+i].value = document.form1["oldserialno"+k].value;
qiushuiwuhen 2002-11-21
  • 打赏
  • 举报
回复
if (eval("document.form1.serialno"+i+".value")==""){
eval("document.form1.serialno"+i).value=eval("document.form1.oldserialno"+k+".value");

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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