zoukankan      html  css  js  c++  java
  • ajax实现搜索自动补全

    输入中文自动查询展示如图:输入“山西”

    好了来代码:

    html

     <input id="sitenameCn" name="sitenameCn" type="text"  class="inputxt" placeholder="请输入关键字搜索" onkeyup="catch_keyword(this.value)" >
     <div id="tips" style="display: none; 90%;  border: 1px solid pink";></div>
    
    
                        

    js代码:

    <script> 
                        window.onload=function() {
                            //获取文本输入框
                            var textElment = document.getElementById("sitenameCn");
                            //获取下提示框
                            var div = document.getElementById("tips");
                            textElment.onkeyup = function () {
                                //获取用户输入的值
                                var text = textElment.value;
                                //如果文本框中没有值或者值不是中文,则下拉框被隐藏,不显示
                                if ((text = text.replace(/s*/g, "")) == "" || !isChn(text)) {
                                    div.style.display = "none";
                                    return;
                                } else {
                                    var url = '<%=basePath%>/smoHosptialInfoController.do?seach&sitenameCn=' + text;
                                    var childs="";
                                    $.ajax({
                                        type: 'GET',
                                        url: url,
                                        dataType: "json",
                                        success: function (obj) {if (obj == "") {
                                                //把childs 这div集合放入到下拉提示框的父div中,上面我们以获取了
                                                div.innerHTML = "没有这家医院请先添加";
                                                div.style.display = "block";
                                                return;
                                            }
                            //遍历自己的数据,获取到自己数据里面的值就可以了,我这里返回的是对象,直接.属性出来值,根据自己的数据格式取值即可
    for (var i = 0; i < obj.length; i++) { childs += "<div onclick=Write(this) onmouseout='recoverColorwhenMouseout(this)' onmouseover='changeColorwhenMouseover(this)'>" + obj[i].sitenameCn + "</div>"; } div.innerHTML = childs; div.style.display = "block"; }, error: function (xhr, errorText, errorType) { //xhr:XMLHttpRequest对象 errorText:错误信息 erroType:(可选)捕获的异常对象 alert('错误'); //自定义错误 alert(errorText + ':' + errorType); alert(xmr.status + ':' + xmr, statusText); } }); } sea = text; }; }; //判断字符串是否全是中文 function isChn(str) { var reg = /^[u4E00-u9FA5]+$/; if (!reg.test(str)) { return false; } else { return true; } } //鼠标悬停时改变div的颜色 function changeColorwhenMouseover(div){ div.style.backgroundColor="pink"; } //鼠标移出时回复div颜色 function recoverColorwhenMouseout(div){ div.style.backgroundColor=""; } //当鼠标带点击div时,将div的值赋给输入文本框 function Write(div){ //将div中的值赋给文本框 document.getElementById("sitenameCn").value=div.innerHTML; //让下拉提示框消失 div.parentNode.style.display="none"; }; </script>

    后台代码:

    后台自己定义自己的数据格式就可以了,我返回的是json数组对象

        @RequestMapping(params = "seach")
        @ResponseBody
        public List<SmoHosptialInfoEntity> getHosptialName(SmoHosptialInfoEntity smoHosptialInfo, HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
            //查询-机构相关
            String hql0 = "from SmoHosptialInfoEntity where 1 = 1 AND sitename_cn like ? ";
            try {
                List<SmoHosptialInfoEntity> smoHosptialInfos = systemService.findHql(hql0, "%"+smoHosptialInfo.getSitenameCn()+"%");
                return smoHosptialInfos;
            } catch (Exception e) {
                return null;
    //            throw new BusinessException(e.getMessage());
            }
        }
  • 相关阅读:
    spring bean 循环依赖问题,在本地环境可以,测试环境报循环依赖问题
    mac 使用
    TCP状态
    Flink 学习 — Flink JobManager 高可用性配置
    Flink 学习 — Flink 写入数据到 Kafka
    Flink 学习 — 上传Flink 项目JAR运行
    Flink 学习 — Flink 写入数据到 ElasticSearch
    Redis持久化原理 — RDB与AOF详细解释
    Flink 学习 — Flink 中几种 Time 详解
    Flink 学习 — Flink中的Stream Windows介绍
  • 原文地址:https://www.cnblogs.com/L-o-g-i-c/p/11357439.html
Copyright © 2011-2022 走看看