2015-09-04 2 views
0

У меня есть код для поиска автозаполнения из базы данных. Здесь, когда поиск выполняется, когда я набираю буквы, соответствующие имена отображаются из базы данных точно так же, как Google.Как использовать клавиши со стрелками вверх и вниз для автозаполнения поиска из базы данных

Проблема в результатах поиска, я не могу использовать клавиши со стрелками для выбора. Пожалуйста, помогите мне добавить код для этого.

Спасибо!

<script type="text/javascript" src="jquery-1.8.0.min.js"></script> 
<script type="text/javascript"> 
$(function(){ 
    $(".search").keyup(function() 
    { 
     var searchid = $(this).val(); 
     var dataString = 'search='+ searchid; 

     if(searchid!='') 
     { 
      $.ajax({ 
      type: "POST", 
      url: "search.php", 
      data: dataString, 
      cache: false, 
      success: function(html) 
      { 
       $("#result").html(html).show(); 
      } 
     }); 
    }return false;  
}); 

jQuery("#result").live("click",function(e){ 
    var $clicked = $(e.target); 
    var $name = $clicked.find('.name').html(); 
    var decoded = $("<div/>").html($name).text(); 
    $('#searchid').val(decoded); 
}); 

jQuery(document).live("click", function(e) { 
    var $clicked = $(e.target); 
    if (! $clicked.hasClass("search")){ 
     jQuery("#result").fadeOut(); 
    } 
}); 

$('#searchid').click(function(){ 
    jQuery("#result").fadeIn(); 
}); 
}); 

</script> 
<script type="text/javascript"> 
function hint(string) 
{ 
if(string.length==0) 
{ 
    document.getElementById("txtHint").innerHTML=""; 
    return; 
} 
if(window.XMLHttpRequest) 
{// code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
} 
else 
{// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
} 
xmlhttp.onreadystatechange=function() 
{ 
    if(xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
document.getElementById("txtHint").innerHTML=xmlhttp.responseText; 
    } 
} 
xmlhttp.open("GET","get.php?searchid="+string,true); 
xmlhttp.send(); 
} 
</script> 
<style type="text/css"> 
body{ 
    font-family:Tahoma, Geneva, sans-serif; 
    font-size:18px; 
} 
.content{ 
    width:900px; 
    margin:0 auto; 
    padding:0px; 
} 
#searchid 
{ 
    width:500px; 
    border:solid 1px #000; 
    padding:10px; 
    font-size:14px; 
} 
#result 
{ 
    position:relative; 
    width:500px; 
    padding:10px; 
    display:none; 
    margin-top:-1px; 
    border-top:0px; 
    overflow:hidden; 
    border:1px #CCC solid; 
    background-color: white; 
} 
.show 
{ 
    padding:10px; 

    font-size:15px; 
    height:10px; 
} 
.show:hover 
{ 
    background:#4c66a4; 
    color:#FFF; 
    cursor:pointer; 
} 
</style> 
</head> 

<body> 
<form method="GET" onkeyup="hint(this.value)"> 
<div class="content"> 
<p><font face="cambria" color="green" size="6"><b>Search Staff byName</b> 
<input type="text"class="search" onkeyup="hint(this.value)id="searchid"> 
<div id="result" align="center"> 
</div> 
</div> 



ответ

0

Здесь вы можете использовать вверх и вниз стрелки для автозаполнения, Попробуйте это, чтобы получить ответ на свой вопрос.

$(document).on('keyup keydown', '.search', function(){ 
var searchid = $(this).val(); 
var dataString = 'search='+ searchid; 
if(searchid!='') 
{ 
$.ajax({ 
type: "POST", 
url: "search.php", 
data: dataString, 
cache: false, 
success: function(html) 
{ 
$("#result").html(html).show(); 
} 
}); 
}return false;  
}); 
Смежные вопросы