jq+css模拟模糊搜索下拉框实现

html:

@*输入框*@
<div>
    <input type="text" style="width: 85%; height: 34px;" onkeyup="InputChange(this)" id="txtInput">
</div>
@*模拟下拉框*@
<div class="divselect" id="dpSelect">

</div>

css:

/*选择框效果*/
.divselect {
    float: left;
    position: relative;
    z-index: 3003;
    background: #fff;
    display: none;
    width: 85%;
}
.divselect ul {
    padding: 0;
    margin: 0;
    border: 1px solid #E4E4E4;
    background-color: #ffffff;
    position: absolute;
    z-index: 30000;
    margin-top: -1px;
    width: 100%;
    overflow: auto;
    max-height: 200px;
}
.divselect ul li {
    list-style-type: none;
    cursor: pointer;
    height: 24px;
    line-height: 24px;
}
.divselect ul li:hover {
    background: #ccc;
}

js:

<script type="text/javascript">
    //点击模拟下拉框以外的地方 下拉框消失
    $(document).bind(‘click‘, function (e) {
        var e = e || window.event; //浏览器兼容性
        var elem = e.target || e.srcElement;
        while (elem) { //循环判断至跟节点,防止点击的是div子元素
            if (elem.id && elem.id == ‘dpSelect‘) {
                return;
            }
            elem = elem.parentNode;
        }
        $(‘#dpSelect‘).css(‘display‘, ‘none‘); //点击的不是div或其子元素
    });

    //用文本框onkeyup事件触发InputChange方法 InputChange方法判断文本框文字是否改变 文字改变则触发SearchOrgName方法
    var sOldValue;
    sOldValue = "";
    function InputChange(arg) {
        var vNewValue = $(arg).val();
        if (sOldValue != vNewValue) {
            //根据条件查询结果并给下拉框动态赋值
            SearchName(arg);
            sOldValue = vNewValue;
        }
    }
    function SearchName(arg) {
        var name = $(arg).val();
        //如果搜索框为空 则返回false
        if (name == "") {
            $("#dpSelect").attr("style", "display:none");
            return false;
        }
        else {
            $("#dpSelect").attr("style", "display:block");
        }
        //获取数据 并给下拉框动态赋html
        $.ajax({
            type: "post",
            url: "......",
            data: { name: name },
            dataType: "",
            async: false,
            success: function (data) {
                var strs = "";
                strs += "<ul>";
                for (var i = 0; i < data.length; i++) {
                    strs += ‘<li onclick="SetValue(this)">‘ + data[i] + ‘</li>‘;
                }
                strs += "</ul>";
                $("#dpSelect").html(strs);
            },
            error: function () {
                alert("查询出错");
            }
        });

    }
    //点击模拟下拉框内选项后 给文本框赋值 关闭下拉框
    function SetValue(arg) {
        var value = $(arg).text();
        $("#txtInput").val(value);
        $("#dpSelect").attr("style", "display:none");
    }
</script>
时间: 2024-10-09 11:26:28

jq+css模拟模糊搜索下拉框实现的相关文章

模拟select下拉框之多选(数据源采用模拟Ajax数据--原创)

最近需要一个下拉多选,本来想偷懒的,所以在网上百度了一番,最终还是发现没有一个符合自己要求的,所以我自己写了一个插件.下面是GIF动态效果图展示 相信大家已经看到效果了,接下来就是我的代码展示 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>模拟select下拉框之多选</title> <style

DIV模拟的下拉框特效

CSS: <style type="text/css"> body, ul, li { margin: 0; padding: 0; font-size: 13px; } ul, li { list-style: none; } #divselect { width: 186px; margin: 80px auto; position: relative; z-index: 10000; } #divselect cite { width: 150px; height:

模拟一个下拉框

用sele标签写的页面总是不太好看,而且在不同的浏览器里显示的样子不同,大家都用div ul li 之类的模拟一个下拉框对其进行美化. 这里是在网上找的一个下拉框的例子,根据它修改完成的,明天试试看,能不能代替项目里的selec. 这里是GitHub地址

代教材之(用DIV+CSS定义漂亮下拉框select)

1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 6 <title>代教材之

jq插件又来了,模拟select下拉框,支持上下方向键哦

好久没来了,更新下插件, 这个原理就是利用的 input[type='hidden']和自定义属性data-value捆绑传值操作的,可是设置默认选项,回调等参数,代码不多,比较简单,吼吼 (function($){ //模拟下拉框 $.fn.htmlSelect = function(opt){ if($(this).length==0) return false; var opts = $.extend({ defaultsItem : 0, //默认选中的select项 saveInput

用div,ul,input模拟select下拉框

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8" /> 5 <title>案例测试</title> 6 <link rel="stylesheet" href="css/all.css" /> 7 <script type="text/javascript" src=&

HTML+CSS模拟实现下拉菜单与select实现对比

select实现下拉框(只能改变select样式,option无法改变) <body> <select> <option selected="selected" value="中国大陆">中国大陆</option> <option value="全国">全国</option> <option value="中国香港">中国香港</opti

纯css实现select下拉框并排显示

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> * { margin: 0; padding: 0; } select { text-align: center; height: 50px; overflow: hidden; border:

模拟select下拉框效果

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <link rel="stylesheet" type="text/css" href="iconfont.css"/> <style type="text/css"> *{ m