js使用div制作的select 输入框的下拉匹配控件

1.引用js

<link rel="stylesheet" href="<%=basePath%>css/zTreeStyle/zTreeStyle.css" type="text/css" />
<script type="text/javascript" src="<%=basePath %>js/selectAutocompleteTree.js"></script>


selectAutocompleteTree.js文件

//下列表显示 type:0请选 ,1全部
function showSelect(textId, divId, uiId, hiddenId,type) {
    if (jQuery("#" + divId).hide()) {
        var nodes = window[uiId];
        var cityObj = jQuery("#" + textId);
        var cityOffset = jQuery("#" + textId).offset();
        jQuery("#" + divId).css({
            left : cityOffset.left + "px",
            top : cityOffset.top + cityObj.outerHeight() + "px"
        }).slideDown("fast");
        
    } else {
        hideSelect(divId);
    }
    if(type=="1"){
        window.loadName="全部";
    }else if(type=="0"){
        window.loadName="请选择";
    }
    jQuery("#" + textId).focus();
}
//具有弹窗的下列表显示
function showSelectWindow(textId, divId, uiId, hiddenId) {
    if (jQuery("#" + divId).hide()) {
        var nodes = window[uiId];
        var cityObj = jQuery("#" + textId);
        var cityOffset = jQuery("#" + textId).position();
        jQuery("#" + divId).css({
            left : cityOffset.left + "px",
            top : cityOffset.top + cityObj.outerHeight() + "px"
        }).slideDown("fast");
    } else {
        hideSelect(divId);
    }
    jQuery("#" + textId).focus();
}
//下列表显示隐藏
function hideSelect(divId) {
    jQuery("#" + divId).fadeOut("fast");
}
//下拉框加载数据
function updateSelect(url, textId, divId, uiId, hiddenId) {
    jQuery.ajax({
        type : "post",
        url : url,
        dataType : "json",
        async : false,
        success : function(data) {
            var d = data;
            zNodes = eval(data);
        },
        error : function(data) {
            alert("返回数据失败");
        }
    });

    //jQuery("#" + textId).val("全部");
    //jQuery("#" + hiddenId).val("请选择");
    window[uiId] = zNodes;
}

// 根据输入文本框进行匹配
var f = true;
function similarFindSelect(txtObj, textId, divId, uiId, hiddenId, paramName) {
    var nodes = window[uiId];
    var curStationName = txtObj.value;
    if (curStationName.length > 0) {
        var list = "";
        if (curStationName != "全部" && curStationName != "请选择") {
            list += "<li οnmοuseοver=\"this.style.cssText='background:RoyalBlue;'\" οnmοuseοut=\"this.style.cssText='color:black'\" οnclick=\"getValue('请选择','"+window.loadName+"','"
                    + textId
                    + "','"
                    + hiddenId
                    + "','"
                    + divId
                    + "');diaoyong('"
                    + paramName
                    + "');\"><a οnmοuseοver=\"this.style.cssText='color:White;'\" οnmοuseοut=\"this.style.cssText='color:black'\" href='javascript:;' value='请选择'>"+window.loadName+"</a></li>";
            for ( var i = 0; i < nodes.length; i++) {
                var re = new RegExp("^" + curStationName);
                var textValue = nodes[i].name;
                var hiddenValue = nodes[i].id;
                if (textValue.match(re)) {
                    list += "<li οnmοuseοver=\"this.style.cssText='background:RoyalBlue;'\" οnmοuseοut=\"this.style.cssText='color:black'\" οnclick=\"getValue('"
                            + hiddenValue
                            + "','"
                            + textValue
                            + "','"
                            + textId
                            + "','"
                            + hiddenValue
                            + "','"
                            + divId
                            + "');diaoyong('"
                            + paramName
                            + "');\"><a οnmοuseοver=\"this.style.cssText='color:White;'\" οnmοuseοut=\"this.style.cssText='color:black'\" href='javascript:;' value='"
                            + hiddenValue + "'>" + textValue + "</a></li>";// 内层循环追加li
                }
            }
            jQuery("#" + uiId).empty();
            jQuery("#" + uiId).append(list);
        } else {
            jQuery("#" + uiId).empty();
            jQuery("#" + uiId)
                    .append(
                            "<li οnmοuseοver=\"this.style.cssText='background:RoyalBlue;'\" οnmοuseοut=\"this.style.cssText='color:black'\" οnclick=\"getValue('请选择','"+window.loadName+"','"
                                    + textId
                                    + "','"
                                    + hiddenId
                                    + "','"
                                    + divId
                                    + "');diaoyong('"
                                    + paramName
                                    + "');\"><a οnmοuseοver=\"this.style.cssText='color:White;'\" οnmοuseοut=\"this.style.cssText='color:black'\" href='javascript:;' value='请选择'>"+window.loadName+"</a></li>");
            for ( var i = 0; i < nodes.length; i++) {
                var textValue = nodes[i].name;
                var hiddenValue = nodes[i].id;
                jQuery("#" + uiId)
                        .append(
                                "<li οnmοuseοver=\"this.style.cssText='background:RoyalBlue;'\" οnmοuseοut=\"this.style.cssText='color:black'\" οnclick=\"getValue('"
                                        + hiddenValue
                                        + "','"
                                        + textValue
                                        + "','"
                                        + textId
                                        + "','"
                                        + hiddenId
                                        + "','"
                                        + divId
                                        + "');diaoyong('"
                                        + paramName
                                        + "');\"><a οnmοuseοver=\"this.style.cssText='color:White;'\" οnmοuseοut=\"this.style.cssText='color:black'\" href='javascript:;' value='"
                                        + hiddenValue
                                        + "'>"
                                        + textValue
                                        + "</a></li>");
            }

        }
    } else {
        jQuery("#" + uiId).empty();
        jQuery("#" + uiId)
                .append(
                        "<li οnmοuseοver=\"this.style.cssText='background:RoyalBlue;'\" οnmοuseοut=\"this.style.cssText='color:black'\" οnclick=\"getValue('请选择','"+window.loadName+"','"
                                + textId
                                + "','"
                                + hiddenId
                                + "','"
                                + divId
                                + "');diaoyong('"
                                + paramName
                                + "');\"><a οnmοuseοver=\"this.style.cssText='color:White;'\" οnmοuseοut=\"this.style.cssText='color:black'\" href='javascript:;' value='请选择'>"
                                + window.loadName + "</a></li>");
        for ( var i = 0; i < nodes.length; i++) {
            var textValue = nodes[i].name;
            var hiddenValue = nodes[i].id;
            jQuery("#" + uiId)
                    .append(
                            "<li οnmοuseοver=\"this.style.cssText='background:RoyalBlue;'\" οnmοuseοut=\"this.style.cssText='color:black'\" οnclick=\"getValue('"
                                    + hiddenValue
                                    + "','"
                                    + textValue
                                    + "','"
                                    + textId
                                    + "','"
                                    + hiddenId
                                    + "','"
                                    + divId
                                    + "');diaoyong('"
                                    + paramName
                                    + "','"
                                    + hiddenValue
                                    + "');\"><a οnmοuseοver=\"this.style.cssText='color:White;'\" οnmοuseοut=\"this.style.cssText='color:black'\" href='javascript:;' value='"
                                    + hiddenValue
                                    + "'>"
                                    + textValue
                                    + "</a></li>");
        }

    }
}
//下拉框选中赋值
function getValue(hiddenValue, textValue, textId, hiddenId, divId) {
    jQuery("#" + textId).val(textValue);
    jQuery("#" + hiddenId).val(hiddenValue);
    hideSelect(divId);
}
//下拉框显示全部
function showAll(textId, hiddenId) {
    jQuery("#" + textId).val("全部");
    jQuery("#" + hiddenId).val("请选择");
    window.loadName="全部";
}
//下拉框显示请选择
function showChoose(textId, hiddenId) {
    jQuery("#" + textId).val("请选择");
    jQuery("#" + hiddenId).val("请选择");
    window.loadName="请选择";
}

//下拉框赋值
function  selectAssignment(textId, hiddenId,value) {
    jQuery("#" + textId).val(value);
    jQuery("#" + hiddenId).val(value);
}
//动态加载div
function createSelectDIV(showId) {
    jQuery("#" + showId)
            .append(
                    "<div style='height:30px; padding-left:8px;padding-top: 6px;'><table style='width:140px;border:1px solid #79accf; height: 15px;'><tr><td><input type='text' value='' id='productText' style='width:128px; height:15px;border:0' οnfοcus='similarFindSelect(this,'productText','selectDIV','selectUI','productClassify')' οnkeyup='similarFindSelect(this,'productText','selectDIV','selectUI','productClassify')' οnblur='hideSelect('selectDIV');' value=''/></td><td><img src='images/s.png' height='17px' width='15px' οnclick='showSelect('productText','selectDIV','selectUI','productClassify')'></img></td></tr></table><input type='hidden' id='productClassify' /></div><div id='selectDIV' style='display:none; position: absolute; margin-top:2px; margin-left: -3px;'><ul id='selectUI' class='ztree'style='margin-top:0; width:180px; height: 100px;'></ul></div>");
}
//调用级联方法
function diaoyong(name, id) {
    if (name == "") {

    } else {
        this.func = new Function(name + "('" + id + "');");
        func();
    }
}


2.初始化数据

//初始化客户名称
  showAll('client_selectText', 'clientName');

3.div布局

<div style="height:30px; padding-left:8px;padding-top: 6px;">
                                <table
                                    style="width:140px;border:1px solid #79accf; height: 15px;">
                                    <tr>
                                        <td><input type="text" value="" id="client_selectText"
                                                style="width:128px; height:15px;border:0"
                                                οnfοcus="similarFindSelect(this,'client_selectText','client_selectDIV','client_selectUI','clientName','getProductName1')"
                                                οnkeyup="similarFindSelect(this,'client_selectText','client_selectDIV','client_selectUI','clientName','getProductName1')"
                                                οnblur="hideSelect('client_selectDIV');"  value=""/>
                                        </td>
                                        <td><img src="images/s.png" height="17px" width="15px"
                                                οnclick="showSelect('client_selectText','client_selectDIV','client_selectUI','clientName','1')"></img>
                                        </td>
                                    </tr>
                                </table>
                                <input type="hidden" id="clientName" />
                            </div>
                            <div id="client_selectDIV" style="display:none; position: absolute; margin-top:2px; margin-left: -3px;">
                                <ul id="client_selectUI" class="ztree" style="margin-top:0; width:180px; height: 100px;"></ul>
   </div>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值