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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类似百度搜索的下拉提示框,复制别人的,改了一下。相关的知识,希望对你有一定的参考价值。

 

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("");
}

 

以上是关于类似百度搜索的下拉提示框,复制别人的,改了一下。的主要内容,如果未能解决你的问题,请参考以下文章

怎么做百度搜索的下拉框?

原生AJAX+jsp+servlet实现百度搜索框提示效果

Jquery实现类似百度的搜索框

搜索自动提示的简单模拟JQuery

求 js 文本框输入拼音出现下拉框列表的特效代码 就像百度搜索框一样 要完整demo 可完美迁移。

百度下拉智能搜索提示