[英]using ajax to select an element through up/down key in keyboard for autocomplete
我正在尝试使用Ajax,PHP和jQuery创建自动完成搜索框。
我可以使用鼠标在搜索框结果上进行选择,我想使用上下键选择元素。
您能告诉我如何使用键盘上的上/下键而不是鼠标来修改代码以选择元素吗?
<?php
if (isset($_POST['search'])) {
$response = "<ul><li>No data found!</li></ul>";
$connection = new mysqli('localhost', 'root', '', 'jqueryautocomplete');
$q = $connection->real_escape_string($_POST['q']);
$sql = $connection->query("SELECT name FROM names WHERE name LIKE '%$q%'");
if ($sql->num_rows > 0) {
$response = "<ul>";
while ($data = $sql->fetch_array())
$response .= "<li>" . $data['name'] . "</li>";
$response .= "</ul>";
}
exit($response);
}
?>
您可以通过以下代码实现:
单击“确定”文本,然后尝试按向下键。
演示在这里: https : //output.jsbin.com/wopofom
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>JS Bin</title> <script type="text/javascript" src="//code.jquery.com/jquery-1.10.1.js"></script> <script type='text/javascript'> $(document).ready(function() { $("ul").keydown(function(e) { switch (e.keyCode) { case 40: $('li:not(:last-child).selected').removeClass('selected').next().addClass('selected'); break; case 38: $('li:not(:first-child).selected').removeClass('selected').prev().addClass('selected'); break; } }); }); </script> <style type="text/css"> .selected { color: red } </style> </head> <body> <div id="results" style="display: block;"> <h4>Press Key Up and Down</h4> <ul tabindex='1'> <li class='selected'>ok</li> <li>ok</li> <li>ok</li> <li>ok</li> <li>ok</li> </ul> </div> </body> </html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.