我写了一个js文件 格式如下://根据AJAX值 赋值次级select的值 ||arrayId 次级需要赋值的sleect表  ||ajaxUrl ajax请求地址  ||ajaxdata 传送的数
function assignSelect(arrayId,ajaxUrl,ajaxdata){
for(var i =0;i<arrayId.length;i++){
removeAll(arrayId[i]);//移除option
addOneOption(arrayId[i]);
if(i==0&&ajaxdata!="0"){
ajaxSelect(arrayId[i],ajaxUrl,ajaxdata);
}
}
}//删除所有的option列
function removeAll(selectId){
$("#"+selectId).empty();
}
//添加一列请选择
function addOneOption(selectId){
$("#"+selectId).append("<option value='0'>请选择</option>"); 
}在界面中的引用如下:<link rel="stylesheet" type="text/css" href="__PUBLIC__/css/tour/global.css">
<link rel="stylesheet" type="text/css" href="__PUBLIC__/css/tour/layout.css">
<link rel="stylesheet" type="text/css" href="__PUBLIC__/css/tour/member.css">
<link rel="stylesheet" type="text/css" href="__PUBLIC__/css/table.css"/>
<link rel="stylesheet" type="text/css" href="__PUBLIC__/js/uploadify/uploadify.css"><script type="text/javascript" src="__PUBLIC__/js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="__PUBLIC__/js/formselectset.js"></script>
<script type="text/javascript" src="__PUBLIC__/js/uploadify/jquery.uploadify-3.1.min.js"></script>
<script type="text/javascript" src="__PUBLIC__/js/formValidator-4.0.1.min.js" charset="UTF-8"></script>
<script type="text/javascript" src="__PUBLIC__/js/formValidatorRegex.js" charset="UTF-8"></script>
<script type="text/javascript" src="__PUBLIC__/js/My97DatePicker/WdatePicker.js" language="javascript"></script>
但是 在IE6下 assignSelect 函数无法执行,后来在函数开始的时候加了alert("aaa");后在调用assignSelect 函数 还是不被执行,所以我想应该是js文件没有被加载,在IE8,IE9下就能正常执行,万分着急,麻烦各位大神给点意见或解决方法,万分感谢,谢谢了

解决方案 »

  1.   

    function assignSelect(arrayId,ajaxUrl,ajaxdata){
    alert('进入assignSelect');///////执行这句没有?
        for(var i =0;i<arrayId.length;i++){
            removeAll(arrayId[i]);//移除option
            addOneOption(arrayId[i]);
            if(i==0&&ajaxdata!="0"){
                ajaxSelect(arrayId[i],ajaxUrl,ajaxdata);
            }
        }
    }
      

  2.   

    这样的
    <select name="area[1]" id="areaFrist" onChange="assignSelect(new Array('areaTwo','areaThree'),'__GROUP__/Scenic/ajaxSelectArea',this.value);">
    <volist name="areaList" id="area" key="k">
    <option value="{$area.id}">{$area.name}</option>
    </volist>
    </select>
    <select name="area[2]" id="areaTwo" onchange="assignSelect(new Array('areaThree'),'__GROUP__/Scenic/ajaxSelectArea',this.value);">
    <option value="0">请选择</option>
    <volist name="areaTwo" id="vo" key="k">
    <option value="{$vo.id}">{$vo.name}</option>
    </volist>
    </select>
    <select name="area[3]" id="areaThree">
    <option value="0">请选择</option>
    </select>
      

  3.   

    <select name="area[1]" id="areaFrist" onChange="alert(window.assignSelect)"改成这样看看,如果没有输入assignSelect的函数体而输出undefined,那么就是js文件没有加载成功,或者加载了js文件,但是由于js文件存储编码和当前页面使用的编码不一致,导致中文乱码从而使脚本出错
    看你这些有些是用utf-8编码的,是不是formselectset.js也使用了utf-8?如果是也需要增加charset,要不当前页面编码不是utf-8编码会,formselectset.js有中文注释出现乱码。
    <script type="text/javascript" src="__PUBLIC__/js/formselectset.js"></script>
    <script type="text/javascript" src="__PUBLIC__/js/uploadify/jquery.uploadify-3.1.min.js"></script>
    <script type="text/javascript" src="__PUBLIC__/js/formValidator-4.0.1.min.js" charset="UTF-8"></script>
    <script type="text/javascript" src="__PUBLIC__/js/formValidatorRegex.js" charset="UTF-8"></script>
    <script type="text/javascript" src="__PUBLIC__/js/My97DatePicker/WdatePicker.js" language="javascript"></script>
      

  4.   

    我加上编码格式了,但是打印出来的还是undefined,请问这种情况怎么解决呢
      

  5.   

    统一你的页面编码方式,你在formselectset.js顶部,不是函数体中增加一句:alert('正在加载');看看有反应没最简单的测试方法,另新建一html页面
    就只加载formselectset.js
    做一个小未例就知道了从代码和使用上看不出任何问题。要么你路径搞错,要么你编码出现问题
      

  6.   

    ie8能运行,ie6不行,基本是编码的问题了,自己查查看编码如果你那个js文件的存储编码为ansi,要给script加charset="gb2312",为utf-8需要加charset="utf-8"
      

  7.   

    谢谢哈~原因找到了是jquery的ajax里面多了一个逗号,导致js文件加载失败