我要达到的目的是当我选择两个下拉列表中一个的时候,我要同时带出另外一个对应的下拉列表的数据。但又一种情况:就是有些校验失败的话,我要重新加载在第一个下拉列表对应的第二个下拉列表的数据。
我的项目是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;
         }
     }
}