有个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............. }