首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 麻烦各位帮我看一下一段Javascript,我怎么在IE7下和firefox可以运行还原两个被带出的下拉列表的值,但是IE6不行啊
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • helocean
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2008-11-17 09:52:01 楼主
    我要达到的目的是当我选择两个下拉列表中一个的时候,我要同时带出另外一个对应的下拉列表的数据。但又一种情况:就是有些校验失败的话,我要重新加载在第一个下拉列表对应的第二个下拉列表的数据。
    我的项目是asp.net 我是通过ajax把另外的一个下拉列表的数据通过json带出:

    //以下是带出对应的数据方法
    function GetStatusByKpiTypeId(kpiTypeCtrl)
    {
        var kpiTypeId=kpiTypeCtrl.options[kpiTypeCtrl.selectedIndex].value;

        if(kpiTypeId.length!=0)
        {
            //服务器端的Ajax类方法
            EasyTMS.App_Code.AjaxMethod.GetStatusByKpiTypeId(kpiTypeId,GetStatusByKpiTypeIdCallBack);
        }
    }

    function GetStatusByKpiTypeIdCallBack(res)
    {
        var ddlStartStatusCodeCtrl=document.getElementById(' <%=ddlEditStartStatusCode.ClientID %>').id;
        var ddlStopStatusCodeCtrl=document.getElementById(' <%=ddlEditStopStatusCode.ClientID %>').id;
       
        //Select是另外的一个js文件里面的对象
        Select.clear(ddlStartStatusCodeCtrl);
        Select.clear(ddlStopStatusCodeCtrl);
       
        Select.addOption(ddlStartStatusCodeCtrl,'','-->请选择 <--');
        Select.addOption(ddlStopStatusCodeCtrl,'','-->请选择 <--');
       
        var jsonString = res.value; // 获取服务器返回的json字符串
        if( jsonString!=undefined &&
            jsonString!=null &&
            jsonString.length!=0)
        {
            var jsonObj = null;
            try
            {
            jsonObj = eval('(' + jsonString + ')');          // 将json字符串转换成对象
              Select.create(ddlStartStatusCodeCtrl, jsonObj,false); // 执行option的添加
              Select.create(ddlStopStatusCodeCtrl, jsonObj,false); // 执行option的添加
             
              var currentKpiTypeValue=document.getElementById(' <%=ddlEditKpiType.ClientID %>').value;
              //Set Value
              var hidTempKpiTypeValue=document.getElementById(' <%=hidTempKpiTypeId.ClientID %>').value;
             
              //我是通过以下两个隐藏的控件记录了那个被带出的下拉列表后,再选中的数据
              var hidStartStatusCodeValue=document.getElementById(' <%=hidStartStatusCodeEditOrAdd.ClientID %>').value;
              var hidStopStatusCodeValue=document.getElementById(' <%=hidStopStatusCodeEditOrAdd.ClientID %>').value;
              SetOptionSelectByValue(hidStartStatusCodeValue,ddlStartStatusCodeCtrl);
              SetOptionSelectByValue(hidStopStatusCodeValue,ddlStopStatusCodeCtrl);       
            }
            catch (ex)
            {
                return null;
            }
            finally
            {
                //设置记录控件为选择的值(在这两个下拉列表事件中就是给以上对应的hidStartStatusCodeEditOrAdd、hidStopStatusCodeEditOrAdd赋值)
                document.getElementById(ddlStartStatusCodeCtrl).onchange();
              document.getElementById(ddlStopStatusCodeCtrl).onchange();
            }
        }
    }

    //设置选择的值
    function SetOptionSelectByValue(_value,_selectClientId)
    {
        //判断是否存在
        var isExit = false;
        var objSelect=document.getElementById(_selectClientId);
        for(var i=0;i <objSelect.options.length;i++)
        {
            if(objSelect.options[i].value == _value)
            {
                objSelect.options[i].selected = true;
                isExit = true;
                break;
            }
        }
    }
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • redcn2004
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-17 13:07:471楼 得分:0
    具体是哪句代码不行?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • helocean
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-17 13:44:102楼 得分:0
    具体就是SetOptionSelectByValue(hidStartStatusCodeValue,ddlStartStatusCodeCtrl); 这段问题
    我在IE7,FIXFOX里是可以赋值的。
    在ie6下,如果我在这句话的上面加个alert函数也是可以初始化选中的。但是我没加的话,我是不能出示话选中的值。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cloudgamer
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-17 13:50:153楼 得分:0

    你可以看看这里对select的操作
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved