日期:2014-05-16  浏览次数:20431 次

vbscript转javascript
有个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 的
------解决方案--------------------
探讨

楼主做什么用的啊?

说需求,重新用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.............
}