`
SonofGod
  • 浏览: 20843 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

输入框提示

阅读更多


输入框提示

手动实现 类似百度的热词提示,支持回车,上下键选择,单击选择

var selectedIndex = -1;

 

//绑定事件
$(function(){
        //获取匹配热词   
        var timeout = null;
        $("#name").blur(function(){
            $("#hotWordView").html("").hide();
        }).keydown(function(event){
            var event = event || window.event;
            var keyCode = event.keyCode;
            if(keyCode == 40 || keyCode == 38){
                var isUp = false;
                if(keyCode == 40){
                    isUp = true;   
                }
                changeSelection(isUp);
            }else if(keyCode == 13){
                if(selectedIndex == -1){
                    $("#hotWordView").html("").hide();
                    clickButton();
                }else{
                    var txt = $("#hotWordView").find("div[class='hotwordclass']").find("div:first").html();
                    $("#name").val(txt);
                    $("#hotWordView").html("").hide();                   
                    clickButton();
                    selectedIndex = -1;
                }
            }else{
                selectedIndex = -1;
                clearTimeout(timeout);
                timeout = setTimeout(function(){   
                        if($("#name").val().length > 0){
                            getHotWord();
                        }else{
                            $("#hotWordView").html("").hide();
                        }
                },200);
            }
        });   
        $("#moreSearchCondition").keydown(function(event)
        {
            var event = event || window.event;
            var keyCode = event.keyCode;
            if(keyCode == 13)
            {
                moreSearchClickButton();
            }
        });   
      });

     //上下键选择的function
      function changeSelection(isUp){
          if(isUp){
              selectedIndex++;
          }else{
              selectedIndex--;
          }
          var maxIndex = $("#hotWordView").children().length -1;
          if(selectedIndex < 0){
              selectedIndex = maxIndex;
          }
          if(selectedIndex > maxIndex){
              selectedIndex = 0;
          }
          for(var i = 0; i <= maxIndex; i++){
              if(i == selectedIndex){
                  $("#hotWordView").children()[i].className = "hotwordclass";
              }else{
                  $("#hotWordView").children()[i].className = "";
              }
          }
      }

      //从后台获取相关的词,并进行页面的展示
      function getHotWord()
      {
        $.ajax({
            type:'post',
            url:'getWord.do',
            data:{'name':$("#name").val()},
            dataType:'json',
            success:function(data)
            {   
                if(!data || data.length<1)
                {
                    $("#hotWordView").html("").hide();
                }
                else
                {
                    var position = $("#name").position();
                    $("#hotWordView").html("").css({left: position.left , top: position.top
                        + $("#name").outerHeight()}).width($("#name").width() - 2).show();
                    var i = 0;

                   //为每一个绑定事件
                    $.each(data,function(key,values){
                        i++;
                        var funList = (function(_i){       
                            return [
                                function()
                                {
                                    $("#hotWordView").children().removeClass("hotwordclass");
                                    $("#divhot" + _i).addClass("hotwordclass");
                                    selectedIndex = _i;
                                },
                                function()
                                {
                                    if(selectedIndex == -1){
                                        $("#hotWordView").html("").hide();
                                        clickButton();
                                    }else{
                                        var txt = $("#divhot" + (selectedIndex)).find("div:first").html()
                                        $("#name").val(txt);
                                        $("#hotWordView").html("").hide();                   
                                        clickButton();
                                        selectedIndex = -1;
                                    }
                                },
                                function(){
                                    var txt = $("#divhot" + (selectedIndex)).find("div:first").text();
                                    $("#name").val(txt);
                                    selectedIndex = -1;
                                    clickButton();
                                }
                            ];           
                        })(i);
                       
                        var list = [
                            "<div id='divhot" + i + "' style='float:left;width:100%;clear:both;'>",
                                "<div style='float:left;margin-left:5px;'>"+ key +"</div>",
                                "<div style='float:right;margin-right:5px;'>"+ values +"</div>",
                            "</div>"
                        ].join("");
                        $("#hotWordView").append(list);
                        $("#divhot" + i).mouseover(funList[0]).keydown(funList[1]).mousedown(funList[2]);    
                     });
              }
            },
            error : function(e) {
                $("#hotWordView").html("").hide();
            }   
        });
      }

1
0
分享到:
评论

相关推荐

    AJAX+ASP实现输入框提示

    这个"AJAX+ASP实现输入框提示"的示例项目,旨在展示如何使用AJAX技术在ASP页面上创建一个智能提示系统,当用户在输入框中输入文字时,后台将实时搜索匹配的数据并显示为提示。这种功能在许多Web应用中非常常见,如...

    输入框提示列表.rar

    《输入框提示列表——JS特效在表单按钮中的应用》 在网页设计中,用户体验是至关重要的一个环节,而输入框提示列表则是提升用户体验的有效手段之一。本文将深入探讨“输入框提示列表”这一概念,并结合JavaScript...

    输入框提示效果输入框提示效果

    在IT界,输入框提示效果是用户界面设计中不可或缺的一部分,它极大地提升了用户体验。这种效果通常体现在各种Web应用、移动应用以及桌面软件中,用于引导用户输入正确的信息或提供操作指引。在这里,我们将深入探讨...

    输入框提示文字上浮

    在UI设计和前端开发中,"输入框提示文字上浮"是一种常见的交互设计方式,它主要体现在当用户聚焦到输入框时,原本显示在输入框内的提示性文字(hint)会浮升到输入框的上方,形成一种清晰的提示效果。这种设计能够...

    输入框提示信息

    标题中的“输入框提示信息”通常指的是在网页或应用程序中,用户输入数据时显示的辅助文本,也称为placeholder或提示文本。这些提示信息为用户提供了一种直观的方式,了解输入框预期接收哪种类型的数据,比如“请...

    jquery输入框提示插件input输入框文字下拉提示添加标签代码

    在创建交互式用户界面时,输入框提示功能是提高用户体验的重要一环。标题和描述提到的“jquery输入框提示插件input输入框文字下拉提示添加标签代码”是一个关于如何利用 jQuery 和相关技术实现这种功能的方法。 这...

    js-input输入框提示语

    - 移动端输入框提示语消失问题:某些移动设备可能有特殊的处理方式,需要特别处理。 综上所述,`js-input输入框提示语`是前端开发中的基本需求,通过HTML的`placeholder`属性结合JavaScript的动态操作,可以实现...

    jQuery 输入框提示插件.zip

    《jQuery 输入框提示插件深度解析》 在Web开发领域,jQuery库因其简洁的API和强大的功能而广受开发者喜爱。对于用户交互体验的提升,输入框提示插件扮演着至关重要的角色。本文将深入探讨名为"jQuery 输入框提示...

    jQuery表单获取和失去焦点输入框提示效果

    "jQuery表单获取和失去焦点输入框提示效果"是一种增强用户交互体验的技术,它通过jQuery库来实现对输入框的动态提示功能。当用户将光标移入输入框时,会显示提示信息,而当用户开始输入或移出输入框时,提示信息则会...

    jquery输入框提示自动完成功能.rar

    &lt;title&gt;jQuery输入框提示自动完成 &lt;script src="https://code.jquery.com/jquery-3.6.0.min.js"&gt;&lt;/script&gt; 请输入关键词"&gt; &lt;ul id="suggestions"&gt;&lt;/ul&gt; ``` 在这个例子中,我们创建了一个id为`...

    ajax输入框提示集合

    标题中的“ajax输入框提示集合”指的是利用Ajax技术实现的一种搜索框功能,它可以为用户在输入时提供实时的搜索建议或匹配结果。 描述中提到的“在淘宝上买的,自己搜集和自己用的,打包下载”,这可能是指一个包含...

    简单的css3输入框提示文字效果

    在网页设计中,CSS3(层叠样式表第三版)为开发者提供了许多强大的新特性,其中之一就是能够创建出丰富的输入框提示文字效果。这个“简单的css3输入框提示文字效果”是一个实例,它展示了如何利用CSS3来优雅地处理...

    jQuery输入框提示绑定车牌代码.zip

    在给定的资源"jQuery输入框提示绑定车牌代码.zip"中,我们可以深入探讨如何利用jQuery实现一个功能丰富的车牌号码输入框。 首先,这个项目的核心功能是在用户输入车牌号码时提供动态提示。当用户开始输入车牌首字母...

    一个 输入框 提示 插件

    本文将详细讨论“一个输入框提示插件”的相关知识点,包括JavaScript基础、输入框交互设计以及插件开发。 首先,JavaScript是前端开发的核心技术之一,它主要负责网页的动态效果和用户交互。在HTML中,`&lt;input&gt;`...

    ASP仿Google输入框提示_自动完成功能

    ASP仿Google输入框提示_自动完成功能ASP仿Google输入框提示_自动完成功能ASP仿Google输入框提示_自动完成功能ASP仿Google输入框提示_自动完成功能ASP仿Google输入框提示_自动完成功能ASP仿Google输入框提示_自动完成...

    jquery实现友好的输入框提示

    本文将深入探讨如何使用jQuery来创建这种友好的输入框提示功能。 首先,我们需要了解jQuery的基本使用。jQuery库通过简化JavaScript的DOM操作,事件处理,动画效果以及Ajax交互,使得开发更高效。在HTML文档中,...

    axure 输入框提示语的自动消失与显示

    本文将深入探讨“Axure 输入框提示语的自动消失与显示”这一主题,这对于创建用户友好的界面设计至关重要。 首先,输入框(Input Field)是网页和应用程序界面中最基本的元素之一,用于收集用户的信息。提示语...

    简单语句实现表单获取和失去焦点输入框提示效果

    本教程将详细讲解如何使用简单的语句实现表单获取和失去焦点时输入框提示效果,主要涉及jQuery库的使用。 首先,我们需要在HTML文档中创建一个包含输入框的表单。例如,我们可以创建一个搜索表单,代码如下: ```...

    输入框提示 google sugesstion

    标题中的“输入框提示 Google Suggestion”指的是在网页或应用中的自动填充功能,它借鉴了Google搜索的建议机制,当用户在输入框中输入文字时,系统会根据已输入的部分内容提供相关的建议选项,以帮助用户快速完成...

    jQuery实现输入框提示绑定车牌号码特效源码.zip

    该压缩包文件"jQuery实现输入框提示绑定车牌号码特效源码.zip"主要包含了一个使用jQuery库来实现的交互效果,即在输入框中输入时动态显示车牌号码的提示。这个功能常见于各种在线服务平台,例如车辆信息查询或交通...

Global site tag (gtag.js) - Google Analytics