用ajax从数据库弄了个2级联动,但是现在要编辑文章,如何设置默认值,我写了点 但是只能选中第一个。
2个select:   classname  classname2  请哥哥们指教!!//获取二级分类
function getCategory(classid){ j.get("./xin/xin_ajax_category",{classid:classid},function(data){ var results=eval("("+data+")"); 
var list = document.getElementById("m_classname2");
    list.options.length = 0;
    list.options.add(new Option("--请选择--","0"));
    for (var i = 0; i < results.length; i++) {
        list.options.add(new Option(results[i].childname,results[i].childid));
    }
});
}//设置二级分类
function setClassname2(classname2){

j("#m_classname2 option").each(function(i){
//alert(j(this).val());
if(j(this).val()==classname2){
j(this).attr("selected","selected");
}
});

}//修改
function modify_work(to_status,doid,classname,classname2,tag){
  j("#apDiv2").fadeIn("fast");
  
j("#m_status").val(to_status);
j("#m_doid").val(doid);

         //设置一级分类
j("#m_classname option").each(function(i){
if(j(this).val()==classname){
j(this).attr("selected","selected");
getCategory(j(this).val());
setClassname2(j(this).val());
}
}); 

var subject=del_hh(j("#subject"+doid).html());
j("#m_subject").val(subject);

j("#m_tag").val(tag);

j("#old_tag").val(j("#tag"+doid).val());

var message=del_hh(j("#message"+doid).html());
j("#m_message").val(message);

}

解决方案 »

  1.   

    搞定了应该是同步和异步的问题吧 getCategory(j(this).val());
     setClassname2(j(this).val());应该是getCategory方法异步生成option 还没有完毕,就用setclassname2去设置其选中项导致的吧,把选中二级分类的操作也放到回调函数里,它们相对来说就是同步的了。
    //修改作品用
    function getCategoryWhenModify(classid,childid){ j.get("./xin/xin_ajax_category",{classid:classid},function(data){ var results=eval("("+data+")"); 
    var list = document.getElementById("m_classname2");
        list.options.length = 0;
        list.options.add(new Option("--请选择--","0"));
        for (var i = 0; i < results.length; i++) {
        
         var option=new Option(results[i].childname,results[i].childid);
         if(results[i].childid==childid){
        
         option.selected=true;
         }
            list.options.add(option);
            
        }
    //     for (var j = 0; j < list.options.length; j++) {
    // if (list.options[j].value == childid) {
    // //alert("=====");
    // list.options[j].selected = true;
    // }
    // }
    });
    }//修改
    function modify_work(to_status,doid,classname,classname2,tag){

     make_div_center("apDiv2");
      j("#apDiv2").fadeIn("fast");
     
    j("#m_status").val(to_status);
    j("#m_doid").val(doid);
    //j("#m_classname").val(classname);
    //j("#m_classname2").val(classname2);

    j("#m_classname option").each(function(i){
    if(j(this).val()==classname){
    j(this).attr("selected","selected");
    getCategoryWhenModify(j(this).val(),classname2);
    return false;//跳出循环 }
    }); 


    var subject=del_hh(j("#subject"+doid).text());
    j("#m_subject").val(subject);

    j("#m_tag").val(tag);

    j("#old_tag").val(j("#tag"+doid).val());

    var message=del_hh(j("#message"+doid).html());
    j("#m_message").val(message);

    }