最近在用ASP写一个页面 ,通过按钮调用一个写在页面内的JS函数,在IE6中无论如何都没有效果,然而在火狐中和SOGOU中都没有问题,也想过把JS代码写入一个文件,无奈JS代码和VBS代码是混合写的,不知道应该如何独立出来。我的关键代码如下 ,在按钮查询中 添加onclick事件调用JS函数 findcl 并且传递 参数(参数是一个SELECT的当前值),然后函数查询数据库相应内容 写入第二个作为列表的select。在以前写过的页面中也有过基本类似的做法,通过按钮的onclick来调用页面中的JS函数,也曾出现过相同的问题,但是最后不知道什么原因就好了。现在又遇到同样的问题,很是头疼。这个问题似乎只在IE6中出现,而且网上说的标记charset根本没有任何效果 ,我JS函数写在网页中,应该不存在编码方式的问题吧。我是特别新的新手,跪求高手给出解决方案。如果这个BUG解决不了,请给出一个合理的做法来实现这一功能,谢谢。<script language ="javascript" type="text/javascript">  
Cls = new Array();  
<%  
sqlc = "select 业务,材料 from dbo.[cxinfo] where 部门='"&bumen&"'"  
set rsc = gz.execute(sqlc)
i = 0  
do while not rsc.eof  
%>  
Cls[<%=i%>] =new Array("<%=rsc("业务")%>","<%=rsc("材料")%>");  
<%  
i = i + 1  
rsc.movenext  
Loop  
rsc.close  
set rsc = nothing  
%>   
function findcl(yewu){  
  var yewu = yewu;  
  var i;  
  document.form1.cl.length = 0 ;
for (i=0;i<Cls.length;i++){  
  if(Cls[i][0]==yewu){
  document.form1.cl.options[document.form1.cl.length] = new Option(Cls[i][1],Cls[i][1]);  
}  
  }  
}  
 
</script>
<td width="10%" align="center">
<input type="button" name="查询" id="查询" value="查询" onClick="findcl(document.form1.yw[document.form1.yw.selectedIndex].value)"/>
</td>
</tr>
</table>
<select name="cl" id="cl" size="20" style="width:100%; border:thick"></select>

解决方案 »

  1.   

    你在ie6环境看下document.form1.yw[document.form1.yw.selectedIndex].value的值对不对。
    再看下findcl方法能不能取到(用alert(findcl)查看)一步步的调试,分析无效果的原因,input[button]的onclick事件ie6显然是支持的,所以你就一步步跟踪脚本的走向就行了。
      

  2.   


    作为一个新手 我表示对alert不太懂 不过我用火狐的fierbug调试  显然是提示findcl函数未定义 可是我在程序中之前也用了类似的方法来定义函数 只有这个不支持  在之前做过的页面中使用的一样的方法和函数 甚至连函数名都一样 不知道该如何解决这个问题  
      

  3.   


     function cxcl(yewu){
     alert("函数调用成功!");
        var   y = yewu; 
        var   i; 
        document.form1.cl.length   =   0   ;
    for   (i=0;i<Cls.length;i++){ 
          if(Cls[i][0]==y){
             document.form1.cl.options[document.form1.cl.length] = new Option(Cls[i][1],Cls[i][1]); 
      } 
        } 
     }
    我这么写就行了吧?
      

  4.   

    直接onclick = "alert(findcl)",看看是不是显示undefined,如果是的话,就是语法有误导致这一段代码没有正确加载,所以报找不到方法。如果没问题,显示的是这个方法的内容,才是对的。找不到方法的情况,你仔细看下script标签内是否有各种误输入,例如中文分号,括号没匹配等等,都可能导致脚本加载的时候中断(一般找不到方法都是这种情况)还有,你可以在声明方法的地方function findcl(xx){xxx}上面一行加一句alert("");看看脚本是否正确的走到这一行。
    这都是简单的调试方法,自己分析原因,跟代码,调试代码,最后得出结论才是最好的学习方式。
      

  5.   

    看看是不是叫yw的select没给 value?没给value值是肯定无法调用的