ztree 带搜索框的 下拉选择树

效果图:


步骤 :

1  jsp文件引入 zTree对应的js

<link href="plug-in/ztree/css/zTreeStyle.css" rel="stylesheet" type="text/css">
<script src="plug-in/ztree/js/jquery.ztree.core-3.5.min.js"></script>
<script type="text/javascript" src="webpage/qinwu/js/common/areaTree.js"></script>
2  jsp 写如下html

<div>
    <span class="mide">:</span>
    <input id="zzjgName"  style=" margin-top:5px;display: none; width:210px" type="text" class="form-control">
    <input id="zzjgOfficeId" style=" margin-top:5px;display: none;width:210px" type="text" class="form-control">
    <input id="areaSel" name="areaSel" style="width:210px" type="text" readonly class="form-control"  οnclick="showMenu(); return false;"  placeholder="---请选择---"/>
    &nbsp;<%--<a id="menuBtn" href="#" οnclick="showMenu(); return false;">选择</a>--%>
</div>
<div id="menuContent" class="menuContent" style="display:none; position: absolute; z-index: 1000;background-color: #fff;border: 1px #666 solid;width:280px;">
    <input  style=" margin-top:5px;width:160px" type="text" class="form-control" οnkeyup="AutoMatch(this)">
    <br>
    <ul id="areaTree" class="ztree" style="margin-top:0; width:160px;"></ul>
</div>
3  jsp写如下js

var setting = {
    view: {
        dblClickExpand: false,
        selectedMulti: false,
        autoCancelSelected: true
    },
    check: {
        enable: true,
        radioType: "all"
    },
    data: {
        simpleData: {
            idKey: "id",
            pIdKey: "pid",
            enable: true
        }
    },
    callback: {
        beforeClick: beforeClick,
        onClick: onClick,
        onDblClick: onDblClick
    }
};
//var zNodes =${znode};
var zNodes;
//可以判断哪些节点不可选
function beforeClick(treeId, treeNode) {
    var check = true;
    /*if(treeNode.id.toString().substring(8).match(/^0{4}$/)){
        check = false;
        alert("只能选择第三级菜单。。。");
    }*/
    return check;
}
//点击节点动作
function onClick(e, treeId, treeNode) {
    /*var pNode = treeNode.getParentNode();
    var ppNode = pNode.getParentNode();

    $('#areaid').val(ppNode.id);
    $('#areaname').val(ppNode.name);

    $('#substationid').val(pNode.id);
    $('#substationname').val(pNode.name);*/

    $('#zzjgOfficeId').val(treeNode.id);
    $('#zzjgName').val(treeNode.name);
    $('#areaSel').val(treeNode.name);


}
//双击节点动作
function onDblClick(e, treeId, treeNode) {
    var treeObj = $.fn.zTree.getZTreeObj("areaTree");
    $('#zzjgOfficeId').val("");
    $('#zzjgName').val("");
    $('#areaSel').val("");
    treeObj.cancelSelectedNode(treeNode);
}
//显示下拉树
function showMenu() {
    var areaObj = $("#areaSel");
    var areaOffset = $("#areaSel").offset();
    $("#menuContent").css({left:areaOffset.left + "px", top:areaOffset.top + areaObj.outerHeight() + "px"}).slideDown("fast");
    $("#bodyId").bind("mousedown", onBodyDown);
}
//隐藏下拉树
function hideMenu() {
    $("#menuContent").fadeOut("fast");
    $("#bodyId").unbind("mousedown", onBodyDown);
}
//注册关闭下拉树的事件
function onBodyDown(event) {
    if (!(event.target.id == "menuBtn" || event.target.id == "areaSel" ||  event.target.id == "menuContent" || $(event.target).parents("#menuContent").length>0)) {
        hideMenu();
    }
}
//下拉树搜索框搜索
function AutoMatch(txtObj) {
    if (txtObj.value.length > 0) {
        var treeObj = $.fn.zTree.getZTreeObj("areaTree");
        var nodeList = treeObj.getNodesByParamFuzzy("name", txtObj.value,null);
        //将找到的nodelist节点更新至Ztree内
        $.fn.zTree.init($("#areaTree"), setting, nodeList);
    } else {
        $.fn.zTree.init($("#areaTree"), setting, zNodes);
    }
}
$(function () {
    $.ajax({
        url: '',
        type: 'POST',
        dataType : "json",
        data: {id: ""},
        async: false,
        success: function (data) {
            var d = $.parseJSON(data);
            zNodes = d;
        }
    });
    //初始化下拉树	
    $.fn.zTree.init($("#areaTree"), setting, zNodes);
});









评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值