本帖最后由 vincent201201 于 2014-06-20 17:07:20 编辑

解决方案 »

  1.   

    第一个功能可以给input的readonly=true然后 button去function里给input赋值,至于你的下拉菜单就麻烦点了吧,select下拉菜单里还要加树,难道select嵌套select???~有了解决方案通知下小弟哦~
      

  2.   

    点击选择弹出一个层,层里实现树,而不是select下拉菜单
      

  3.   

    点击选择弹出一个层,层里实现树,而不是select下拉菜单哦 就是用css自己做出来吧?
      

  4.   

     
    楼主难道不知道 ext 树这个强大的工具吗   解决你的问题分分钟的事情 
      

  5.   

    看下jQueryeasyui   封装好的组件  直接引tree就行   只要后台返回符合格式的JSON
      

  6.   

    是呀jquery easyui多好用呀,不过我自己写了一个东西玩玩
    /**
     * 初始化二级级联
     * @param dataDictionaryTypeName  数据字典类别名称
     * @param idone 初始化第一个参数的id
     * @param valueone 初始化第一个参数的值
     * @param aliasone 初始化第一个参数的下拉框的原始值
     * @param idtwo 初始化第二个参数的id
     * @param valuetwo 初始化第二个参数的值
     * @param aliastwo 初始化第二个参数的下拉框的原始值
     * @return
     */
    function initTwo(dataDictionaryTypeName,idone,valueone,aliasone,idtwo,valuetwo,aliastwo){
    $("#"+idone).live("change",function (){
    var parentId=this.options[this.selectedIndex].value;
    getChangeNextDictionary(parentId,idtwo,aliastwo,option);
    });
    var list=new Array();
    var option;
    getOneDictionaryList(dataDictionaryTypeName,idone,valueone,aliasone,option);
    getNextDictionaryList(valueone,idtwo,valuetwo,aliastwo,option);
    }
    /**
     * 初始化三级级联
     * @param dataDictionaryTypeName 数据字典类别名称
     * @param idone  初始化第一个参数的id
     * @param valueone  初始化第一个参数的值
     * @param aliasone  初始化第一个参数的下拉框的原始值
     * @param idtwo 初始化第二个参数的id
     * @param valuetwo 初始化第二个参数的值
     * @param aliastwo  初始化第二个参数的下拉框的原始值
     * @param idthree 初始化第三个参数的id
     * @param valuethree 初始化第三个参数的值
     * @param aliasthree 初始化第三个参数的下拉框的原始值
     * @return
     */
    function initThree(dataDictionaryTypeName,idone,valueone,aliasone,idtwo,valuetwo,aliastwo,idthree,valuethree,aliasthree){
    $("#"+idone).live("change",function (){
    var parentId=this.options[this.selectedIndex].value;
    getChangeNextDictionary(parentId,idtwo,aliastwo,option);
    getChangeNextDictionary("",idthree,aliasthree,option);
    });
    $("#"+idtwo).live("change",function (){
    var parentId=this.options[this.selectedIndex].value;
    getChangeNextDictionary(parentId,idthree,aliasthree,option);
    });
    var list=new Array();
    var option;
    getOneDictionaryList(dataDictionaryTypeName,idone,valueone,aliasone,option);
    getNextDictionaryList(valueone,idtwo,valuetwo,aliastwo,option);
    getNextDictionaryList(valuetwo,idthree,valuethree,aliasthree,option);
    }
    /**
     * 初始化四级级联
     * @param dataDictionaryTypeName 数据字典类别名称
     * @param idone  初始化第一个参数的id
     * @param valueone  初始化第一个参数的值
     * @param aliasone   初始化第一个参数的下拉框的原始值
     * @param idtwo  初始化第二个参数的id
     * @param valuetwo 初始化第二个参数的值
     * @param aliastwo 初始化第二个参数的下拉框的原始值
     * @param idthree  初始化第三个参数的id
     * @param valuethree  初始化第三个参数的值
     * @param aliasthree  初始化第三个参数的下拉框的原始值
     * @param idfour  初始化第四个参数的id
     * @param valuefour  初始化第四个参数的值
     * @param aliasfour  初始化第四个参数的下拉框的原始值
     * @return
     */
    function initFour(dataDictionaryTypeName,idone,valueone,aliasone,idtwo,valuetwo,aliastwo,idthree,valuethree,aliasthree,idfour,valuefour,aliasfour){
    $("#"+idone).live("change",function (){
    var parentId=this.options[this.selectedIndex].value;
    getChangeNextDictionary(parentId,idtwo,aliastwo,option);
    getChangeNextDictionary("",idthree,aliasthree,option);
    getChangeNextDictionary("",idfour,aliasfour,option);
    });
    $("#"+idtwo).live("change",function (){
    var parentId=this.options[this.selectedIndex].value;
    getChangeNextDictionary(parentId,idthree,aliasthree,option);
    getChangeNextDictionary("",idfour,aliasfour,option);
    });
    $("#"+idthree).live("change",function (){
    var parentId=this.options[this.selectedIndex].value;
    getChangeNextDictionary(parentId,idfour,aliasfour,option);
    });

    var list=new Array();
    var option;
    getOneDictionaryList(dataDictionaryTypeName,idone,valueone,aliasone,option);
    getNextDictionaryList(valueone,idtwo,valuetwo,aliastwo,option);
    getNextDictionaryList(valuetwo,idthree,valuethree,aliasthree,option);
    if(MyJs.isNull(valuetwo)){
    getNextDictionaryList("",idfour,valuefour,aliasfour,option);
    }else{
    getNextDictionaryList(valuethree,idfour,valuefour,aliasfour,option);
    }
    }/**
     * 获取一级的select框的值
     * @param dataDictionaryTypeName 数据字典类别名称
     * @param id 下拉框的id
     * @param value 下拉框的预定值
     * @param alias 下拉框的text值
     * @param option option变量,没有什么实际意义
     * @return
     */
    function getOneDictionaryList(dataDictionaryTypeName,id,value,alias,option){
    if(!MyJs.isNull(value)){
    $.ajax({
    type:'post',
    dataType:'text',
    url:'/dataDictionaryFront!getParentListByType.xhtml',
    data:'dataDictionaryTypeName='+MyJs.encodeByValue(dataDictionaryTypeName)+'&t='+MyJs.randomNumber,
    success:function(data){
    if(!MyJs.isNull(data)){
    $("#"+id).empty();
    option=$("<option>").val("").text(alias);
    $("#"+id).append(option);
    list=data.split(',');
    if(list.length > 0){
    for(var i=0;i<list.length;i++){
    if(list[i].split("$")[0] == value){
    option=$("<option>").val(list[i].split("$")[0]).text(list[i].split("$")[1]).attr("selected","selected");
    }else{
    option=$("<option>").val(list[i].split("$")[0]).text(list[i].split("$")[1]);
    }
    $("#"+id).append(option);
    }
    }
    }else{
    $("#"+id).empty();
    option=$("<option>").val("").text(alias);
    $("#"+id).append(option);
    }
    }
    });
    }else{
    $.ajax({
    type:'post',
    dataType:'text',
    url:'/dataDictionaryFront!getParentListByType.xhtml',
    data:'dataDictionaryTypeName='+MyJs.encodeByValue(dataDictionaryTypeName)+'&t='+MyJs.randomNumber,
    success:function(data){
    if(!MyJs.isNull(data)){
    $("#"+id).empty();
    option=$("<option>").val("").text(alias);
    $("#"+id).append(option);
    list=data.split(',');
    if(list.length > 0){
    for(var i=0;i<list.length;i++){
    option=$("<option>").val(list[i].split("$")[0]).text(list[i].split("$")[1]);
    $("#"+id).append(option);
    }
    }
    }else{
    $("#"+id).empty();
    option=$("<option>").val("").text(alias);
    $("#"+id).append(option);
    }
    }
    });
    }
    }
    /**
     * 改变下拉框的值获取下一级下拉框列表
     * @param parentId 父级下拉框的值
     * @param id 下一级下拉框的id
     * @param alias  下一级下拉框的text值
     * @param option option变量,没有什么实际意义
     * @return
     */
    function getChangeNextDictionary(parentId,id,alias,option){
    var list=new Array();
    if(!MyJs.isNull(parentId)){
    $.ajax({
    type:'post',
    dataType:'text',
    url:'/dataDictionaryFront!getChildsListByParent.xhtml',
    data:'parentId='+parentId+'&t='+MyJs.randomNumber,
    success:function(data){
    if(!MyJs.isNull(data)){
    $("#"+id).empty();
    option=$("<option>").val("").text(alias);
    $("#"+id).append(option);
    list=data.split(',');
    if(list.length > 0){
    for(var i=0;i<list.length;i++){
    option=$("<option>").val(list[i].split("$")[0]).text(list[i].split("$")[1]);
    $("#"+id).append(option);
    }
    }
    }else{
    $("#"+id).empty();
    option=$("<option>").val("").text(alias);
    $("#"+id).append(option);
    }
    }
    });
    }else{
    $("#"+id).empty();
    option=$("<option>").val("").text(alias);
    $("#"+id).append(option);
    }
    }
    /**
     *  初始化下一级下拉框
     * @param parentId 上一级下拉框的值
     * @param id 下一级下拉框的id
     * @param value 下一级下拉框的值
     * @param alias 下一级下拉框的text值
     * @param option  option变量,没有什么实际意义
     * @return
     */
    function  getNextDictionaryList(parentId,id,value,alias,option){
    if(!MyJs.isNull(parentId)){
    if(MyJs.isNull(value)){
    $.ajax({
    type:'post',
    dataType:'text',
    url:'/dataDictionaryFront!getChildsListByParent.xhtml',
    data:'parentId='+parentId+'&t='+MyJs.randomNumber,
    success:function(data){
    if(!MyJs.isNull(data)){
    $("#"+id).empty();
    option=$("<option>").val("").text(alias);
    $("#"+id).append(option);
    list=data.split(',');
    if(list.length > 0){
    for(var i=0;i<list.length;i++){
    option=$("<option>").val(list[i].split("$")[0]).text(list[i].split("$")[1]);
    $("#"+id).append(option);
    }
    }
    }else{
    $("#"+id).empty();
    option=$("<option>").val("").text(alias);
    $("#"+id).append(option);
    }
    }
    });
    }else{
    $.ajax({
    type:'post',
    dataType:'text',
    url:'/dataDictionaryFront!getChildsListByParent.xhtml',
    data:'parentId='+parentId+'&t='+MyJs.randomNumber,
    success:function(data){
    if(!MyJs.isNull(data)){
    $("#"+id).empty();
    option=$("<option>").val("").text(alias);
    $("#"+id).append(option);
    list=data.split(',');
    if(list.length > 0){
    for(var i=0;i<list.length;i++){
    if(list[i].split("$")[0] == value){
    option=$("<option>").val(list[i].split("$")[0]).text(list[i].split("$")[1]).attr("selected","selected");
    }else{
    option=$("<option>").val(list[i].split("$")[0]).text(list[i].split("$")[1]);
    }
    $("#"+id).append(option);
    }
    }
    }else{
    $("#"+id).empty();
    option=$("<option>").val("").text(alias);
    $("#"+id).append(option);
    }
    }
    });
    }
    }else{
    $("#"+id).empty();
    option=$("<option>").val("").text(alias);
    $("#"+id).append(option);
    }
    }