在ASP程序中有一个表单 表单中有三个列的select,其中一个select的值根据是其他两个的值生成。
其中三个select的名称xinghao1,jixing1,danwei1,而在js程序中我想设置danwei1的options,而且danwei1对象名称设置时,我想用danwei加上xinghao1最右边的一个数字构成danwei1的名称,因为我还有很行这样的操作,名称的命名规律也是每一行加同样的数字。
现在我的代码如下。
function redirect(x,y,z){ 
var temp
var i
var xinghao
var jixing
i=0 
danwei="danwei"+right(z,1)
temp=document.shujutijiaoA
temp=temp.+danwei
for (var m=temp.options.length-1;m>=0;m--) 
temp.options[m]=null 
<%while not rs2.eof%> 
xinghao="<%=CStr(rs2("xinghao"))%>"
jixing="<%=CStr(rs2("jixing"))%>" 
if(xinghao==x && jixing==y) { 
temp.options.add(new Option("<%=rs2("BZhong")%>","<%=rs2("BZhong")%>"))
i=i+1

<%rs2.movenext 
wend%> 
} <select name="xinghao1" id="xinghao1" style="margin:0; border:0; padding:0;" onChange="redirect(this.options.value,jixing1.options.value,this.name)">但是提示对象为空 或不是对象。
经过测试关键是名称表述有问题。
temp=temp.+danwei

解决方案 »

  1.   

    还是劝楼主把;号打起吧...毕竟return(换行) 
    false;
    和 return (不换行)false; JS的解析是不一样的!
      

  2.   

    temp=temp.+danweitemp应该是一个htmlelement集合吧你想选择里面的元素 ,不能像你这样用的
    可以这样访问  temp[danwei],这个单位要是一个字符串,也就是元素名称
      

  3.   

    temp=document.shujutijiaoA
    temp=temp.danwei我猜shujutijiaoA是个form,danwei是其中的一个name=danwei的select吧。