vbscript转javascript

seani 2011-04-06 04:56:30
有个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
...全文
9316 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
toury 2011-04-07
  • 打赏
  • 举报
回复

if((","+ary(4,i)+",").indexOf(","+frmxx.ug.value+",")>0||frmxx.ug.value=="X"){
//do something.............
}

seani 2011-04-07
  • 打赏
  • 举报
回复
想问下,if instr("," & ary(4,i) & ",", "," & frmxx.ug.value & ",")>0 or frmxx.ug.value="X" then 这个vbscript语句怎么转成javascript
seani 2011-04-07
  • 打赏
  • 举报
回复
谢谢,这方法是可以,var ary = [<%= strOutput %>],但这里好像取不到数据
[Quote=引用 5 楼 hongmei85 的回复:]
参考下,另外楼主要搞清楚下客户端和服务端,asp里面的ary和你vbs脚本里面的ary不是等同的,需要下列代码中var ary = [<%= strOutput %>]这样,客户端脚本才能得到服务端查询出来的数据


HTML code
<script type="text/javascript">
<!--
<% dim strOutput

ssql="sele……
[/Quote]
seani 2011-04-07
  • 打赏
  • 举报
回复
想问下,这样写是否可以

<script language=javascript>
var fmObj=document.frmxx;
var ary = new Array();
<%
for i= 0 to ubound(ary,2)

Response.Write "ary[0][" & i & "]=""" & ary(0,i) & """;" & vbcrlf
Response.Write "ary[1][" & i & "]=""" & ary(1,i) & """;" & vbcrlf
Response.Write "ary[2][" & i & "]=""" & ary(2,i) & """;" & vbcrlf
Response.Write "ary[3][" & i & "]=""" & ary(3,i) & """;" & vbcrlf
Response.Write "ary[4][" & i & "]=""" & ary(4,i) & """;" & vbcrlf
next
%>
function chgbm1()
{
alert("fdsf");
var i,e,j,ba;
for(var i=0;i<frmxx.dxry.options.length-1;i++)
{
frmxx.dxry.options.remove(0);
}
for(var i=0;i<ary[2].length;i++)
{
if (frmxx.bm.value==ary[2][i]||frmxx.bm.value=="X")
{
ba=0;
for(var j=0;j<frmxx.yxry.length-1;j++)
{
if(ary[0][i]==frmxx.yxry.item(j).value)
{
ba=1;
break;
}
}
}
if(ba==0)
{
var e=Document.createElement("OPTION");
e.value = ary[0][i];
e.text = ary[1][i];
frmxx.dxry.options.add[e];
}
}

}
hongmei85 2011-04-06
  • 打赏
  • 举报
回复
参考下,另外楼主要搞清楚下客户端和服务端,asp里面的ary和你vbs脚本里面的ary不是等同的,需要下列代码中var ary = [<%= strOutput %>]这样,客户端脚本才能得到服务端查询出来的数据

<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>
kaifadi 2011-04-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hch126163 的回复:]

楼主做什么用的啊?

说需求,重新用js 写,都比改它容易!

那个命名,很难猜测他是做什么的!
感觉是操作 select option 的
[/Quote]
同意+++
关键看你的需求,如果楼主一定要硬性转换,那看看这个行吗?具体我也不知道你那些是怎么定义的,到时候执行不了报错误,最好把你完整的HTML代码都发出来!完整的:

<script type="text/javascript">
var i,e,j,ba;
for(var i=0;i<frmxx.dxry.options.length-1;i++)
{
frmxx.dxry.options.remove(0);
}
for(var i=0;i<ary[2].length;i++)
{
if (frmxx.bm.value==ary[2][i]||frmxx.bm.value=="X")
{
ba=0;
for(var j=0;j<frmxx.yxry.length-1;j++)
{
if(arr[0][i]==frmxx.yxry.item(j).value)
{
ba=1;
break;
}
}
}
if(ba==0)
{
var e=Document.createElement("OPTION");
e.value = ary[0][i];
e.text = ary[1][i];
frmxx.dxry.options.add[e];
}
}
</script>
seani 2011-04-06
  • 打赏
  • 举报
回复
<script language=vbscript>
<!--
dim ary()
redim ary(4,0)
<%
Response.Write "redim ary(4," & ubound(ary,2) & ")" & vbcrlf
for i= 0 to ubound(ary,2)
Response.Write "ary(0," & i & ")=""" & ary(0,i) & """" & vbcrlf
Response.Write "ary(1," & i & ")=""" & ary(1,i) & """" & vbcrlf
Response.Write "ary(2," & i & ")=""" & ary(2,i) & """" & vbcrlf
Response.Write "ary(3," & i & ")=""" & ary(3,i) & """" & vbcrlf
Response.Write "ary(4," & i & ")=""" & ary(4,i) & """" & vbcrlf
next
%>
<%if stag="zw" then%>
usezw
frmxx.R1(1).checked=true
<%elseIf stag = "ug" Then%>
useug
frmxx.R1(2).checked=true
<%else%>
usebm
frmxx.R1(0).checked=true
<%end if%>

sub usebm
frmxx.bm.style.display="inline"
frmxx.zw.style.display="none"
frmxx.ug.style.display="none"
end sub
sub usezw
frmxx.zw.style.display="inline"
frmxx.bm.style.display="none"
frmxx.ug.style.display="none"
end sub
sub useug
frmxx.ug.style.display="inline"
frmxx.zw.style.display="none"
frmxx.bm.style.display="none"
end sub
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

sub chgug
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 instr("," & ary(4,i) & ",", "," & frmxx.ug.value & ",")>0 or frmxx.ug.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

sub chgzw
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 instr("," & ary(3,i) & ",", "," & frmxx.zw.value & ",")>0 or frmxx.zw.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

sub dosall
dim i,j,ba
for i= 0 to frmxx.dxry.options.length-1
ba=0
for j=0 to frmxx.yxry.length-1
if frmxx.dxry.item(i).value=frmxx.yxry.item(j).value then
ba=1
exit for
end if
next
if ba=0 then
Set e = Document.createElement("OPTION")
e.value=frmxx.dxry.item(i).value
e.text=frmxx.dxry.item(i).text
frmxx.yxry.options.add e
end if
next
for i= 0 to frmxx.dxry.options.length-1
frmxx.dxry.options.remove 0
next
end sub




sub dosnone
dim i,j,ba
for i= 0 to frmxx.yxry.options.length-1
ba=0
for j=0 to frmxx.dxry.length-1
if frmxx.yxry.item(i).value=frmxx.dxry.item(j).value then
ba=1
exit for
end if
next
if ba=0 then
Set e = Document.createElement("OPTION")
e.value=frmxx.yxry.item(i).value
e.text=frmxx.yxry.item(i).text
frmxx.dxry.options.add e
end if
next
for i= 0 to frmxx.yxry.options.length-1
frmxx.yxry.options.remove 0
next
end sub

sub dodsone
dim i,j,ba
if frmxx.yxry.options.length=0 then exit sub
ba=0
for j=0 to frmxx.dxry.length-1
if frmxx.yxry.item(frmxx.yxry.selectedIndex).value=frmxx.dxry.item(j).value then
ba=1
exit for
end if
next
if ba=0 then
Set e = Document.createElement("OPTION")
e.value=frmxx.yxry.item(frmxx.yxry.selectedIndex).value
e.text=frmxx.yxry.item(frmxx.yxry.selectedIndex).text
frmxx.dxry.options.add e
end if
frmxx.yxry.options.remove frmxx.yxry.selectedIndex
end sub

sub dosone
dim i,j,ba
if frmxx.dxry.options.length=0 then exit sub
ba=0
for j=0 to frmxx.yxry.length-1
if frmxx.dxry.item(frmxx.dxry.selectedIndex).value=frmxx.yxry.item(j).value then
ba=1
exit for
end if
next
if ba=0 then
Set e = Document.createElement("OPTION")
e.value=frmxx.dxry.item(frmxx.dxry.selectedIndex).value
e.text=frmxx.dxry.item(frmxx.dxry.selectedIndex).text
frmxx.yxry.options.add e
end if
frmxx.dxry.options.remove frmxx.dxry.selectedIndex
end sub

sub doSave
dim i
dim s1,s2
s1=""
s2=""
for i=0 to frmxx.yxry.length-1
s1=s1 & "," & frmxx.yxry.item(i).value
s2=s2 & " " & frmxx.yxry.item(i).text
next
if s1 = "" Then
msgbox "未选择人员",vbExclamation,"提示"
exit sub
End If
if s1<>"" then
s1=mid(s1,2)
s2=mid(s2,2)
end if
window.returnValue = s1 & "_" & s2
window.close
end sub
//-->
</script>
seani 2011-04-06
  • 打赏
  • 举报
回复
是的,是选人,根据下拉框选人,完整代码:
<%
dim rs
set rs=server.CreateObject("adodb.recordset")
dim ary()
redim ary(3,0)
dim syxrylb,sbxrylb
sbxrylb = Request("bxrylb")&"" '不需要在这里选择的人员列表
syxrylb=Request.QueryString("yxrylb")
syxrylb=trim(syxrylb)

%>
<table align="center" width="490" class="InputFrameMain" style="margin-left:7px"><tr><td><table width=470 border=0 align=center cellpadding=0 cellspacing=0 style="Margin:5px 5px 5px 5px">
<form method=post name=frmxx id=frmxx>
<tr class=InputFrameLine>
<td width=60 class='inputlabelcell' nowrap>选择人员</td>
<td class=inputareacell width=350><input type="radio" value="V1" name="R1" onclick="vbscript:usebm" Checked>按部门选择 <input type="radio" value="V1" name="R1" onclick="vbscript:usezw" >按职位选择 <input type="radio" value="V1" name="R1" onclick="vbscript:useug" >按工作组选择</td>
</tr>
<tr class=InputFrameLine>
<td width=60 class='inputlabelcell' align=right nowrap>部门/职位</td>
<td class=inputareacell>
<select id=bm name=bm style="display:inline" onchange="" style="width:100%">
<option value="X" selected>所有部门</option>
<%
ssql="select * from rs_bmb where ztbz='0' order by bmbh"
rs.Open ssql,conn,1,1
do while not rs.EOF
%>
<option value="<%=rs("bmbh")%>" <%if sdata=rs("bmbh") then Response.Write "selected"%>>
<%=replace(string(len(rs("bmbh"))-2,"a"),"a"," ") & server.HTMLEncode(rs("bmmc") & "")%></option>
<%
rs.MoveNext
loop
rs.Close
%>
</select>
<select id=zw name=zw style="display:none" onchange="vbscript:chgzw" style="width:100%">
<option value="X" selected>所有职位</option>
<%
ssql="select a.*,b.bmmc from oa_qx_zw a,rs_bmb b where a.bmbh=b.bmbh"
rs.Open ssql,conn,1,1
do while not rs.EOF
%>
<option value="<%=rs("zwbh")%>" <%if cstr(sdata)=cstr(rs("zwbh")) then Response.Write "selected"%>><%=server.HTMLEncode(rs("bmmc") & "/" & rs("zwmc") & "")%></option>
<%
rs.MoveNext
loop
rs.Close
%>
</select>
<select id=ug name=ug style="display:none" onchange="vbscript:chgug" style="width:100%">
<option value="X" selected>所有工作组</option>
<%
ssql="select * from OA_UserGroup where IsUse = 0 "
rs.Open ssql,conn,1,1
do while not rs.EOF
%>
<option value="<%=rs("GroupID")%>" <%if cstr(sdata)=cstr(rs("GroupID")) then Response.Write "selected"%>>
<%=server.HTMLEncode(rs("GroupName"))%>
</option>
<%
rs.MoveNext
loop
rs.Close
%>
</select>
</td>
</tr>

<tr class=InputFrameLine>
<td colspan=2 class=inputareacell>
<table width=100% class=tableframe>
<tr align=center class=listtitle>
<td class=listcelltitle>可选人员</td>
<td class=listcelltitle> </td>
<td class=listcelltitle>已选人员</td>
</tr>

<tr align=center>
<td>
<select id=dxry name=dxry style="display:inline" size=9 rows=9 style="width: 100%" ondblclick="addAttendee();">
<%

ssql="select ygbh,ygxm,ssbm,zw,GroupID from rs_ygb where ryzt='0' or ryzt='2' order by ygxm asc"
rs.Open ssql,conn,1,1
dim i
redim ary(4,rs.RecordCount)
for i=1 to rs.RecordCount
ary(0,i)=rs("ygbh")
ary(1,i)=rs("ygxm")
ary(2,i)=rs("ssbm")
ary(3,i)=rs("zw")
ary(4,i)=rs("GroupID")
if sbxrylb<> "" then
if instr("," & sbxrylb & ",","," & rs("ygbh") & ",")=0 then
%>
<option value=<%=rs("ygbh")%>><%=server.HTMLEncode(rs("ygxm") & "")%></option>
<%
end if
else
if instr("," & syxrylb & ",","," & rs("ygbh") & ",")=0 then
%>
<option value=<%=rs("ygbh")%>><%=server.HTMLEncode(rs("ygxm") & "")%></option>
<%
end if
end if
rs.MoveNext
next
rs.Close
%>
</select>
</td>
<td valign=center width=40>
<span valign=center>
<input type=button class=button value="全选" id=bsall name=bsall onclick="vbscript:dosall">
<br>
<br>
<input type=button class=button value="全清" id=bsnone name=bsnone onclick="vbscript:dosnone">
</span>
</td>
<td class=row>
<select id=yxry name=yxry style="display:inline" size=9 rows=9 style="width: 100%" ondblclick="removeAttendee();">
<%
if syxrylb<>"" then
ssql="select ygbh,ygxm from rs_ygb where (ryzt='0' or ryzt='2') and ygbh in (" & syxrylb & ")"
rs.Open ssql,conn,1,1
for i=1 to rs.RecordCount
%>
<option value=<%=rs("ygbh")%>><%=server.HTMLEncode(rs("ygxm") & "")%></option>
<%
rs.MoveNext
next
rs.Close
end if
%>
</select>
</td>
</tr>
</table>
</td>
</tr>
<input type="hidden" name="srcOrgID" value=""><!--for display org-->
<input type="hidden" name="strselUserText" value="">
<input type="hidden" name="selUserValue" value="">
<tr class=InputFrameButtonLine>
<td align="center" colspan=2>
<input type=button class=button value=确定 name="bQD" id="bQD" onclick="vbscript:doSave">
<input type=button class=button value=放弃 name="bFQ" id="bFQ" onclick='vbscript:window.close'>
<td>
</tr>
</form>
</table></td></tr></table>
<%
set rrs = nothing
Conn.Close
set conn = nothing
%>
</BODY>
</html>
hch126163 2011-04-06
  • 打赏
  • 举报
回复
楼主做什么用的啊?

说需求,重新用js 写,都比改它容易!

那个命名,很难猜测他是做什么的!
感觉是操作 select option 的

87,902

社区成员

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

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