我用的是asp.net  c#  写了
<script language="vbscript" >function Validate()。</script>
我这样写 <input id="Button9" type="button"  onclick="Validate()" value="&#39564;&#35777;&#21152;&#23494;&#29399;" />点击Button9 能够实现Validate功能,没问题,  但是 当第一次点机 服务器控件如dropdownlist时 没问题, 执行它的 SelectedIndexChanged事件,但是第二次电机它时候,不执行它的 SelectedIndexChanged事件,并且左下角出现网页错误, 查看信息,为第一行 第二个字符。我把   <script language="vbscript" >function Validate()。</script> 屏蔽掉,就能成功执行无限次的SelectedIndexChanged事件   了,  但是这样  我就不能 调用 <script language="vbscript" >function Validate()。</script> 的代码了。   请问  客户端怎么调用vbscript写的方法呢?   <script language="vbscript" >function Validate()。</script>这段代码一定要的,因为这是其他人写好的,不能用Javascript改装,    请问 怎么解决啊。谢谢了

解决方案 »

  1.   

    <script  language=vbscript >

                
                  dim bErr       sub ShowErr(Msg)
            bErr = true
            MsgBox Msg        End Sub
        
           function Validate()
        
         On Error Resume Next
         ePass.GetLibVersion
         ePass.OpenDevice 1, ""

    If Err then
    ShowErr "您还没有插入加密狗,请重试."
    document.getElementById("TextBox12").disabled=true
        
            document.getElementById("Button10").disabled=true
            document.getElementById("Label24").disabled=true
    ePass.CloseDevice
    Exit function
    else
        msgBox "插入加密狗成功,请输入打印密码"
    End if   
      
      
    ePass.VerifyPIN 1, TheForm.UserPIN.Value        document.getElementById("TextBox12").disabled=false    
        document.getElementById("Button10").disabled=false
        document.getElementById("Label24").disabled=false
        document.getElementById("TextBox12").value=""  
        ePass.CloseDevice

         End function
        </script>
      

  2.   

    <OBJECT classid=clsid:E740C5DF-3454-46A7-80EC-364D1ADB6CF0 id=ePass name = ePass STYLE="LEFT: 0px; TOP: 0px; width: 7px; height: 21px;" width=0 height=0></OBJECT>
    <input id="Button9" type="button"  onclick="Validate()" value="&#39564;&#35777;&#21152;&#23494;&#29399;" />
      

  3.   

    <OBJECT classid=clsid:E740C5DF-3454-46A7-80EC-364D1ADB6CF0 id=ePass name = ePass STYLE="LEFT: 0px; TOP: 0px; width: 7px; height: 21px;" width=0 height=0></OBJECT>
    是自定义控件
      

  4.   

    从描述看,应该是你的脚本写的有问题。不是怎么调用的问题上。你应该在出错的那次,查看html原代码。看错在哪里
      

  5.   

    我把所有 脚本 屏蔽掉,  加一个 <script language="vbscript" ></script>
    就 出错
      

  6.   

    应该是脚本语言混乱了。这个要看生成的源代码。
    一般把每个脚本前加语言标识,一般可以解决,或者指定你的这个页面都用vbscript
    <input id="Button9" type="button"  onclick="vbscript:Validate()">
      

  7.   

    <input type=button onclick="VBScript:Validate()" value="Click Me">
      

  8.   

    不行啊,  我 把 那段脚本 屏蔽了,  没有问题
    但是  我加上了 <script language=vbscript ></script>  里面什么 都不写  就不行了 请高手门 帮帮忙看看吧
      

  9.   

    document里面把默认的客户端语言改为vbscript 试试。
      

  10.   

    把你的主要代码发来: [email protected]我看看,记住:不的不要发,要发全
      

  11.   

    当你为DropDownList设置AutoPostBack为true的时候,生成的html代码里会添加onchange事件:
    onchange="javascript:setTimeout('__doPostBack(\'DropDownList1\',\'\')', 0)"因为你是javascript和vbscript混用,并且在前面的声明中只用到了vbscript,因此setTimeout把__doPostBack当作vbscript来解释,这就产生了错误。你可以加个按钮设置onclick为oncclick="javascript:setTimeout('javascript:__doPostBack(\'DropDownList1\',\'\')', 0)"来验证。解决办法:先声明script为javascript,然后再声明vbscript<script language="javascript" type="text/javascript"></script>
    <script language="vbscript" type="text/vbscript">
    Function Validate()
        ......
    End Function
    </script>