类似百度搜索的下拉提示框,复制别人的,改了一下。

jsp代码:在填写上级公司的input框时需要给客户提示已经保存过的相似公司名称,所以在下面加一个id为append的空的div。

<div class="row cl">
  <label class="form-label col-xs-4 col-sm-2" style="text-align: right;">上级公司:</label>
  <div class="formControls col-xs-8 col-sm-9">
  <input type="text" class="input-text" placeholder="注:无上級公司则无需填写" value="${company.temporary}" id="kw" onKeyup="loadCompanyNamejson(this);" style="width:310px">
  </div>
  <div

   id="append" class="formControls col-xs-8 col-sm-9" style="border:solid #F5F5F5 2px; border-top:1px; text-align: left; display:none; width:310px; margin-left: 198px; overflow-y: auto;height: 100px;"><               < /div>
</div>

css样式:乱加的,能看就行

#append{
border-width: 1px 2px 2px;
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
border-right-color: rgb(245, 245, 245);
border-bottom-color: rgb(245, 245, 245);
border-left-color: rgb(245, 245, 245);
border-image: initial;
border-top-style: initial;
border-top-color: initial;
width: 310px;
margin-left: 198px;
display: none;
height: 100px;
overflow-y: auto;
}

======border:solid #F5F5F5 2px; border-top:1px; text-align: left;  display:none; width:310px; margin-left: 198px; overflow-y: auto;height: 130px;"=======

js代码:异步获取搜索提示信息的list,也可以自己写一个提示的字符串数组

function loadCompanyNamejson(obj){
  if (nameList == null || nameList == undefined) {
    $.ajax({
    type : "POST",
    url : rootpath + "/crm/company/nameJson",
    dataType:"json",
    contentType: "application/json;charset=utf-8",
    data:JSON.stringify(company),
    success : function(data) {

这里是先声明了一个全局的var变量nameList用于储存临时拿来的list
    nameList = data.nameList;
    getContent(obj, nameList);
    },
  error : function(data) {
    console.log(data);
  }
});
  }else {
  getContent(obj, nameList);
  }
}

拿到数据后判断一下,调用getContent()方法。这里的kw是input框的id,上面已经红色标明

function getContent(obj, nameList){
  var kw = jQuery.trim($(obj).val());
  if(kw == ""){
  $("#append").hide().html("");
  return false;
}

这里需要改一下循环的list后面的直接复制就可以了
var html = "";
for (var i = 0; i < nameList.length; i++) {
  var nameTemp = nameList[i].name;
  if (nameTemp.indexOf(kw) >= 0) {
  html = html + "<div class=‘item companyNameclass‘ onmouseenter=‘getFocus(this)‘ onClick=‘getCon(this);‘>" + nameTemp + "</div>";
  }
}
  if(html != ""){
    $("#append").show().html(html);
  }else{
    $("#append").hide().html("");
  }
}

======================================================================================

$(function(){
  $(document).keydown(function(e){
  e = e || window.event;
  var keycode = e.which ? e.which : e.keyCode;
  if(keycode == 38){
    if(jQuery.trim($("#append").html())==""){
      return;
    }
    movePrev();
    }else if(keycode == 40){
      if(jQuery.trim($("#append").html())==""){
        return;
      }
    $("#kw").blur();
    if($(".item").hasClass("addbg")){
      moveNext();
    }else{
      $(".item").removeClass(‘addbg‘).eq(0).addClass(‘addbg‘);
    }
  }else if(keycode == 13){
    dojob();
  }
});

  var movePrev = function(){
  $("#kw").blur();
  var index = $(".addbg").prevAll().length;
  if(index == 0){
    $(".item").removeClass(‘addbg‘).eq($(".item").length-1).addClass(‘addbg‘);
  }else{
    $(".item").removeClass(‘addbg‘).eq(index-1).addClass(‘addbg‘);
  }
};

  var moveNext = function(){
  var index = $(".addbg").prevAll().length;
  if(index == $(".item").length-1){
    $(".item").removeClass(‘addbg‘).eq(0).addClass(‘addbg‘);
  }else{
    $(".item").removeClass(‘addbg‘).eq(index+1).addClass(‘addbg‘);
  }
};

  var dojob = function(){
  $("#kw").blur();
  var value = $(".addbg").text();
  $("#kw").val(value);
  $("#append").hide().html("");
  };
});

=============================================================

function getFocus(obj){
  $(".item").removeClass("addbg");
  $(obj).addClass("addbg");
}
function getCon(obj){
  var value = $(obj).text();
  $("#kw").val(value);
  $("#append").hide().html("");
}

时间: 2024-07-30 13:21:58

类似百度搜索的下拉提示框,复制别人的,改了一下。的相关文章

百度搜索下拉提示框实现

最近在做百度IFE前端技术学院的题,然后有一题就是模拟百度搜索智能提示.题目是开源的,稍后给出地址. 因为博主没学过后端啊,欲哭无泪,所以不能实现后端模糊搜索,那如果前端ajax纯粹请求一份同样的数据,效果就不好. 机智的博主直接把百度搜索api借来一下. 直接从开发者工具,监控网络,找到请求地址. 百度api: 我把api缩减了一下,删除了大部分暂时用不上的参数. https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=abc&json=

百度搜索设置下拉框的操作

Selenium Webdriver百度搜索设置,代码参照虫师selenium_webdriver(python)第一版中百度搜索框设置的代码 #coding:utf-8 from selenium import webdriver import time dr=webdriver.Ie() dr.get("http://www.baidu.com") dr.find_element_by_link_text("设置").click() #定位父节点后再定位子节点

js搜索框 js仿百度搜索 js下拉框 jQuery.Autocomplete使用

做了一个网站,需要根据文本框的输入模糊搜索数据库内容给出提示供用户选择,就找到了jQuery.Autocomplete 效果如下图: 该插件托管在github上,具体地址:https://github.com/agarzola/jQueryAutocompletePlugin 官方的英文文档:http://api.jqueryui.com/autocomplete/ 在使用过程中遇到大坑跟大家说一下. 第一个是插件的数据源问题! 如果要使用服务器的数据源需要在调用autocomplete的时候传

史上最全的搜索下拉提示用户交互研究——读《An Eye-tracking Study of User Interactions with Query Auto Completion》

        搜索下拉提示(Query Auto Completion,简称QAC)现在几乎是每个搜索引擎必备的基本功能,作用是在用户在搜索框输入查询词的过程中,给用户展示一系列搜索查询query供用户选择,可以方便用户输入.缩短用户搜索时间.提高用户搜索体验.在这方面的研究已经有很多,如基于上下文.基于时间序列等预测query的热度.个性化排序等,但关于用户如何与搜索下拉提示(下文简称QAC)交互的研究目前还是一个空白. 微软的Katja Hofmann前几天(11.3-11.7)刚刚填补了

上课笔记_使用DWR实现自动补全 类似百度搜索框的自动显示效果

使用DWR实现自动补全 自动补全:是指用户在文本框中输入前几个字母或汉字的时候,自动在存放数据的文件或数据库中将所有以这些字母或汉字开头的数据提示给用户供用户选择 在日常上网过程中,我们经常使用搜索引擎,当我们输入想要检索的关键字时,搜索引擎会提示我们相关的关键字 训练要点: 掌握使用DWR框架开发Ajax程序 使用MyEclipse 10.0 + MySql5.0 新建数据库:可以手动随便新建一个测试用的 DROP TABLE IF EXISTS `books`; CREATE TABLE `

自定义SWT控件三之搜索功能下拉框

3.搜索功能下拉弹出框 package com.view.control.select; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import log.HikLog; import org.apache.commons.lang3.StringUtils; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CLa

模糊匹配仿百度自动下拉提示

实际项目中,我们可以把数据获取改成ajax动态获取,在 getContent()中 <!DOCTYPE> <html> <head> <title>js/jQuery实现类似百度搜索功能</title> <meta name="Author" content="Michael"> <meta name="Keywords" content="js/jQuery

jsonp跨越请求百度搜索api 实现下拉列表提示

题目来源: 最近在做百度IFE前端技术学院的题,然后有一题就是模拟百度搜索智能提示.题目是开源的,稍后给出地址. 因为博主没学过后端啊,欲哭无泪,所以不能实现后端模糊搜索,那如果前端ajax纯粹请求一份同样的数据,效果就不好. 机智的博主直接把百度搜索api借来一下. 直接从开发者工具,监控网络,找到请求地址. 百度api: 我把api缩减了一下,删除了大部分暂时用不上的参数. https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=abc

jquery.chosen.js下拉选择框美化插件项目实例

由于之前使用的bootstrap-select插件是建立在bootstrap基础上的,实际使用到项目中的时候,与我们使用的ace-admin(基于bootstrap)存在样式冲突,导致下拉框的样式发生变化.为了界面的美观,不得已查资料寻找另外的插件. 使用jquery.chosen.js下拉选择框美化插件同样也能达到类似效果 完成效果如下 实现步骤如下 1.导入相关文件 <link rel="stylesheet" href="${ctxStatic}/css/chos