Home >Web Front-end >JS Tutorial >Simulate a fuzzy search drop-down list similar to Baidu Google_javascript skills

Simulate a fuzzy search drop-down list similar to Baidu Google_javascript skills

WBOY
WBOYOriginal
2016-05-16 16:52:271598browse
Copy code The code is as follows:

// JavaScript Document
function onChangehoverLi(thisLi){
$("#searchtext").val($(thisLi).html());
$("#suggest_ul").hide(0);
validateform2();
}

$(function(){
//Hide the drop-down li when loading
$("#suggest_ul").hide(0);
});

/ /Ajax dynamically obtains keywords

//Listen to text box input changes

function fuzzySearch(){

//Create ajax object function
function createLink(){
if(window.ActiveXObject){
var newRequest = new ActiveXObject("Microsoft.XMLHTTP");
}else{
var newRequest = new XMLHttpRequest();
}
return newRequest;
}

//If the text box is empty, do not send the request
if($("#searchtext").val().length==0||$(" #searchtext").val().length>10){
$("#suggest_ul").hide(0);
return;
}
//Send request
http_request = createLink();//Create an ajax object
if(http_request){
var sid = $("#searchtext").val();
var url = "contentSearchAction!getSynonyms.action" ;
var data = "keywords=" encodeURI(sid);
//alert(data)
http_request.open("post",url,true);
http_request.setRequestHeader("content -type","application/x-www-form-urlencoded");

//Specify a function to process the results returned from the server
http_request.onreadystatechange = dealresult; //No brackets are required for this function
//Send request
http_request.send(data);
}

//Process the return result
function dealresult(){
if(http_request.readyState== 4){
//Equal to 200 means success
if(http_request.status==200){
if(http_request.responseText=="no"){
$("#suggest_ul") .hide(0);
return;

}
$("#suggest_ul").show(0);
var res = eval("(" http_request.responseText ") ");
var contents="";
for(var i=0;ivar keywords = res[i].keywords;
contents=contents "
  • " keywords "
  • ";

    }
    $("# suggest_ul").html(contents);


    }
    }
    }

    }
    //Mouse
    $(function(){

    //Display the drop-down prompt 300 milliseconds after pressing the key
    $("#searchtext").keyup(function(){
    setInterval(changehover,300);
    function changehover() {
    $("#suggest_ul li").hover(function(){ $(this).css("background","#eee");},function(){ $(this).css(" background","#fff");});
    }
    });

    });

    Page:
    Copy code The code is as follows:




    searchSuggest</title> ; <BR><link href="css/searchSuggest.css" type="text/css" rel="stylesheet" > <br><script type="text/javascript" src="js/jquery- 1.7.1.js"></script> <br><script type="text/javascript" src="js/searchSuggest.js"></script> <br><style> <br>#suggest_ul{ <br>width:100%; <br>max-height:223px; <br>margin:0px; <br>padding:0px; <br>border:1px solid #ccc; <br>background -color:#ffffff; <br>list-style-type:none; <br>} <br><br><br>#suggest_ul li{ <br>padding-left:5px; <br>line-height: 22px; <br>font-size:13px; <br>width:100%; <br>height:22px; <br>cursor:default; <br>} <br></style> <br>< /head> <br><br><body> <br><div id="searchSuggest"> <br><form action="deal.php" method="get" id="suggest_form"> ; <BR><input type="text" id="searchtext" name="searchtext" autocomplete="off" value="search..." oninput="fuzzySearch();" onblur="if(this. value==''){this.value='search...'}" onfocus="if(this.value=='search...'){this.value=''}"/> <br><input type="submit" value="Search" id="suggest_submit" /> <br></form> <br><ul id="suggest_ul"> <br></ ul> <br></div> <br><br></body> <br></html> <br> </div> <br>During the process of using it, I found a situation where I would not search. The input method that comes with the iOS system when inputting Chinese is neither an onkeyup nor an onchange event, because the user first pressed the button on the virtual keyboard. <br><br>You can use the onkeyup event. When Chinese appears, click Chinese to change the value in the input box to Chinese. Onchange cannot capture the value of the input box changed by the script. <br><br>The final solution is to use the oninput event. This event is very easy to use in the latest HTML5, but it is troublesome that some lower version browsers are not compatible.</div><div class="nphpQianMsg"><div class="clear"></div></div><div class="nphpQianSheng"><span>Statement:</span><div>The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn</div></div></div><div class="nphpSytBox"><span>Previous article:<a class="dBlack" title="jquery uses jxl plug-in to export excel example_jquery" href="https://m.php.cn/faq/13364.html">jquery uses jxl plug-in to export excel example_jquery</a></span><span>Next article:<a class="dBlack" title="jquery uses jxl plug-in to export excel example_jquery" href="https://m.php.cn/faq/13366.html">jquery uses jxl plug-in to export excel example_jquery</a></span></div><div class="nphpSytBox2"><div class="nphpZbktTitle"><h2>Related articles</h2><em><a href="https://m.php.cn/article.html" class="bBlack"><i>See more</i><b></b></a></em><div class="clear"></div></div><ins class="adsbygoogle" style="display:block" data-ad-format="fluid" data-ad-layout-key="-6t+ed+2i-1n-4w" data-ad-client="ca-pub-5902227090019525" data-ad-slot="8966999616"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({}); </script><ul class="nphpXgwzList"><li><b></b><a href="https://m.php.cn/faq/1609.html" title="An in-depth analysis of the Bootstrap list group component" class="aBlack">An in-depth analysis of the Bootstrap list group component</a><div class="clear"></div></li><li><b></b><a href="https://m.php.cn/faq/1640.html" title="Detailed explanation of JavaScript function currying" class="aBlack">Detailed explanation of JavaScript function currying</a><div class="clear"></div></li><li><b></b><a href="https://m.php.cn/faq/1949.html" title="Complete example of JS password generation and strength detection (with demo source code download)" class="aBlack">Complete example of JS password generation and strength detection (with demo source code download)</a><div class="clear"></div></li><li><b></b><a href="https://m.php.cn/faq/2248.html" title="Angularjs integrates WeChat UI (weui)" class="aBlack">Angularjs integrates WeChat UI (weui)</a><div class="clear"></div></li><li><b></b><a href="https://m.php.cn/faq/2351.html" title="How to quickly switch between Traditional Chinese and Simplified Chinese with JavaScript and the trick for websites to support switching between Simplified and Traditional Chinese_javascript skills" class="aBlack">How to quickly switch between Traditional Chinese and Simplified Chinese with JavaScript and the trick for websites to support switching between Simplified and Traditional Chinese_javascript skills</a><div class="clear"></div></li></ul></div></div><ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5902227090019525" data-ad-slot="5027754603"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({}); </script><footer><div class="footer"><div class="footertop"><img src="/static/imghwm/logo.png" alt=""><p>Public welfare online PHP training,Help PHP learners grow quickly!</p></div><div class="footermid"><a href="https://m.php.cn/about/us.html">About us</a><a href="https://m.php.cn/about/disclaimer.html">Disclaimer</a><a href="https://m.php.cn/update/article_0_1.html">Sitemap</a></div><div class="footerbottom"><p> © php.cn All rights reserved </p></div></div></footer><script>isLogin = 0;</script><script type="text/javascript" src="/static/layui/layui.js"></script><script type="text/javascript" src="/static/js/global.js?4.9.47"></script></div><script src="https://vdse.bdstatic.com//search-video.v1.min.js"></script><link rel='stylesheet' id='_main-css' href='/static/css/viewer.min.css' type='text/css' media='all'/><script type='text/javascript' src='/static/js/viewer.min.js?1'></script><script type='text/javascript' src='/static/js/jquery-viewer.min.js'></script><script>jQuery.fn.wait = function (func, times, interval) { var _times = times || -1, //100次 _interval = interval || 20, //20毫秒每次 _self = this, _selector = this.selector, //选择器 _iIntervalID; //定时器id if( this.length ){ //如果已经获取到了,就直接执行函数 func && func.call(this); } else { _iIntervalID = setInterval(function() { if(!_times) { //是0就退出 clearInterval(_iIntervalID); } _times <= 0 || _times--; //如果是正数就 -- _self = $(_selector); //再次选择 if( _self.length ) { //判断是否取到 func && func.call(_self); clearInterval(_iIntervalID); } }, _interval); } return this; } $("table.syntaxhighlighter").wait(function() { $('table.syntaxhighlighter').append("<p class='cnblogs_code_footer'><span class='cnblogs_code_footer_icon'></span></p>"); }); $(document).on("click", ".cnblogs_code_footer",function(){ $(this).parents('table.syntaxhighlighter').css('display','inline-table');$(this).hide(); }); $('.nphpQianCont').viewer({navbar:true,title:false,toolbar:false,movable:false,viewed:function(){$('img').click(function(){$('.viewer-close').trigger('click');});}}); </script></body><!-- Matomo --><script> var _paq = window._paq = window._paq || []; /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="https://tongji.php.cn/"; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', '9']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); })(); </script><!-- End Matomo Code --></html>