文本框模仿 下拉框,可以输入筛选

<th class="label">
                    供应商:
                </th>
                <td class="input">
                    <%--<asp:DropDownList ID="drpSupply" Width="150px" runat="server">
                    </asp:DropDownList>--%>
                    <asp:TextBox ID="txtSupply" runat="server"  Width="260px" οnkeyup="findAutoPrompt(this,'',true);"
                        οnclick="findAutoPrompt(this,'',true);" ajaxurl="/b2c/handlers/GetAllSuppliers.ashx"
                        autocomplete="off" MaxLength="20" autowidth="265px" dispalyvalue="true" inputkey="false" showkey="false"></asp:TextBox>

  </td>

==================弹出框

 <div id="popup" >
        <ul id="auto_ul">
        </ul>
    </div>

================js==========

 function refreshParentPage() {
            if (window.opener && window.opener.rebind) {
                window.opener.rebind();
            }
            window.location = location.href;
        }





var oInputField;    //考虑到很多函数中都要使用
var oPopDiv;        //因此采用全局变量的形式
var oAuto_Ul;
function initVars(obj) {
    //初始化变量
    oInputField = $(obj);
    oPopDiv = $("#popup");
    oAuto_Ul = $("#auto_ul");
}
function clearInputValue() {
    //清除提示内容
    oAuto_Ul.empty();
    oPopDiv.removeClass("show");
}
function setdispalyvalue(value) {
    if (oInputField.attr("dispalyvalue") && oInputField.attr("dispalyvalue") == "true") {
        var label = $("label[for='" + oInputField.attr("id") + "']");
        if (label) {
            label.html("");
            label.html(value);
        }
    }
}
function setInputValue(JsonData) {


    //显示提示框,传入的参数即为匹配出来的结果组成的数组
    clearInputValue();    //每输入一个字母就先清除原先的提示,再继续
    oPopDiv.addClass("show");
    oPopDiv.css("top", oInputField.offset().top + 21);
    oPopDiv.css("left", oInputField.offset().left);
    var width = "204px";
    if (oInputField.attr("autowidth")) {
        width = oInputField.attr("autowidth").replace("px", "");
    }
    oPopDiv.css("width", width);


    //是否显示Key
    if (oInputField.attr("showkey") && oInputField.attr("showkey") == "false") {
        for (var i = 0; i < JsonData.length; i++) {
            oAuto_Ul.append($("<li class='listyle' key='" + JsonData[i].key + "' val='" + JsonData[i].value + "'  title='" + JsonData[i].key + ":" + JsonData[i].value + "' >" + JsonData[i].value + "</li>"));
        }
    }
    else {
        for (var i = 0; i < JsonData.length; i++) {
            oAuto_Ul.append($("<li class='listyle' key='" + JsonData[i].key + "' val='" + JsonData[i].value + "'  title='" + JsonData[i].key + ":" + JsonData[i].value + "' >" + JsonData[i].key + ":" + JsonData[i].value + "</li>"));
        }
    }
    //文本框复制Key或者是Value
    if (oInputField.attr("inputkey") && oInputField.attr("inputkey") == "false") {
        oAuto_Ul.find("li").click(function() {
            oInputField.val($(this).attr("val"));
            clearInputValue();
            oInputField.attr("returnkey", $(this).attr("key"));
        }).hover(
        function() { $(this).addClass("mouseOver"); },
        function() { $(this).removeClass("mouseOver"); }
        );
    }
    else {
        oAuto_Ul.find("li").click(function() {
            oInputField.val($(this).attr("key"));
            clearInputValue();
            setdispalyvalue($(this).attr("val"))
            oInputField.attr("returnkey", $(this).attr("key"));
        }).hover(
        function() { $(this).addClass("mouseOver"); },
        function() { $(this).removeClass("mouseOver"); }
        );
    }
    
    setdispalyvalue("");
}
function findAutoPrompt(obj, param, Empty) {
    initVars(obj);        //初始化变量
    if (oInputField.val().length > 0 || Empty) {
        //获取异步数据
        $.ajax({
            type: "post",
            url: oInputField.attr("ajaxurl"),
            data: { "InputValue": oInputField.val(), "param": param },
            success: function(JsonData) {
                if (JsonData.length > 0) {
                    setInputValue(eval(JsonData));    //显示服务器结果
                }
                else {
                    clearInputValue();
                    setdispalyvalue("输入值无效!");
                    
                }
            }
        });
    }
    else {
        clearInputValue();     //无输入时清除提示框(例如用户按del键)
        setdispalyvalue("");
    }
    oInputField.attr("returnkey", "");
}
document.onclick = function() {
    if (oInputField && oAuto_Ul && oPopDiv) {
        clearInputValue();
    }
};

js代码 [removed] var personArr = [ { name: '王港', src: 'img/3.png', des: '颈椎不好', sex: 'm' }, { name: '张三', src: 'img/4.png', des: '描述信息2', sex: 'm' }, { name: '李四', src: 'img/5.png', des: '描述信息3', sex: 'm' }, { name: '王麻子', src: 'img/1.png', des: '描述信息4', sex: 'm' }, { name: '阿海', src: 'img/2.png', des: '描述信息5', sex: 'm' }, { name: '刘莹', src: 'img/5.png', des: '我是谁', sex: 'f' }, { name: '王秀莹', src: 'img/4.png', des: '我很好看', sex: 'f' }, { name: '刘金雷', src: 'img/1.png', des: '你没有见过陌生的脸', sex: 'm' }, { name: '刘飞翔', src: 'img/2.png', des: '瓜皮刘', sex: 'm' } ]; //渲染函数 function renderList(arr) { var str = ""; arr.forEach(function (ele, index) { str = '\ \ ' ele.name '\ ' ele.des '\ ' }) $("ul").html(str) } renderList(personArr) //根据名字渲染 var searchVal = ""; var sexVal = "a"; $(".search-box").on("input", function () { searchVal = $(this).val(); all() }) //根据性别渲染 $("span").on("click", function () { $("span").removeClass("active"); $(this).addClass("active"); sexVal = $(this).attr("sex"); all() }) //根据名字筛选数组 function nameFilter(name, arr) { return arr.filter(function (ele, index) { return ele.name.indexOf(name) != -1 ? true : false }) } //根据性别筛选数组 function sexFilter(sex, arr) { if (sex == "a") { return arr; } return arr.filter(function (ele, index) { return ele.sex == sex; }) } //合并筛选 function all() { var lastArr = nameFilter(searchVal, personArr); lastArr = sexFilter(sexVal, lastArr) renderList(lastArr) } [removed] 一款非常简单的jQuery文本框输入文字自动筛选代码,带图片的查询框文字筛选列表显示代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值