有个vbscript函数转成javascript,请javascript高手帮下忙,谢谢
sub chgbm
dim i,e,j,ba
for i= 0 to frmxx.dxry.options.length-1
frmxx.dxry.options.remove 0
next
for i=1 to ubound(ary,2)
if frmxx.bm.value=ary(2,i) or frmxx.bm.value="X" then
ba=0
for j=0 to frmxx.yxry.length-1
if ary(0,i)=frmxx.yxry.item(j).value then
ba=1
exit for
end if
next
if ba=0 then
Set e = Document.createElement("OPTION")
e.value=ary(0,i)
e.text=ary(1,i)
frmxx.dxry.options.add e
end if
end if
next
end sub
------解决方案--------------------
楼主做什么用的啊?
说需求,重新用js 写,都比改它容易!
那个命名,很难猜测他是做什么的!
感觉是操作 select option 的
------解决方案--------------------
------解决方案--------------------
参考下,另外楼主要搞清楚下客户端和服务端,asp里面的ary和你vbs脚本里面的ary不是等同的,需要下列代码中var ary = [<%= strOutput %>]这样,客户端脚本才能得到服务端查询出来的数据
- HTML code
<script type="text/javascript">
<!--
<% dim strOutput
ssql="select ygbh,ygxm,ssbm from rs_ygb where ryzt='0' or ryzt='2' order by ygxm asc"
rs.Open ssql,conn,1,1
dim i
Do while(not rs.eof)
strOutput = strOutput & ",[""" & rs("ygbh") & """,""" & rs("ygxm") & """,""" & rs("ssbm") & """]"
rs.movenext
Loop
rs.close
if (strOutput<>"")Then
strOutput = mid(strOutput,2)
end if
%>
var ary = [<%= strOutput %>]
function chgbm(){
var i,e,j,ba,opts;
opts = frmxx.dxry.options;
opts.length = 0;
for (i=0; i<ary.length; i++) {
if(frmxx.bm.value==ary[i][2] || frmxx.bm.value=="X"){
ba=0
for(j=0; j<frmxx.yxry.length; j++){
if(ary[i][0]==frmxx.yxry.item[j].value){
ba=1;
break;
}
}
if(ba==0){
opts[opts.length] = new Option(ary[i][0],ary[i][1]);
}
}
}
}
//-->
</script>
------解决方案--------------------
- JScript code
if((","+ary(4,i)+",").indexOf(","+frmxx.ug.value+",")>0||frmxx.ug.value=="X"){
//do something.............
}