在自动完成中添加onkeyup功能

时间:2014-02-25 02:59:32

标签: jquery ajax

我现在已经自动完成了。如果值无效,我正在尝试添加onkeyup事件。我这里有两个剧本。我的一个脚本是使用ajax从数据库中获取值。我的另一个就是为价值创造一个变量。我需要的是将onkeyup事件连接到我的当前代码,该代码具有ondown事件的下拉列表。我如何混淆这两个代码?

任何帮助都会表示赞赏。先谢谢!

通过Ajax获取我当前的代码

$(function() {
    $("#autocomplete").autocomplete('autocomplete.php?', { mustMatch: true });
});

function changeAutoComplete (val) {
    $( "#autocomplete" ).autocomplete({
        source: 'autocomplete.php?selected='+val
    });
}

的Ajax

<?php
    $mysqli = new mysqli("localhost", "root", "", "2015") or die("Database Error");
    $auto = $mysqli->real_escape_string($_GET["q"]);
    $selected = $mysqli->real_escape_string($_GET["selected"]);
    $sql = $mysqli->query("SELECT * FROM code WHERE item LIKE '%$auto%' AND cat_code='$selected' GROUP BY id ORDER BY item" ); 

    if($sql)
    {
        $str = array();
        while($row=mysqli_fetch_array($sql))
        {
            $str[] = $row['item'];
        }
        echo json_encode($str);
    }
?>

使用onkeyup事件自动完成

$(document).ready(function() {
    var data = ["ActionScript", "AppleScript", "Asp", "BASIC", "C", "C++", "iran", "Scheme"];
    $("#autocomplete").autocomplete(data, { mustMatch: true });
});
$('input#autocomplete').result(function(event, data, formatted) {
    $("#result").html(!data ? "No match found!" : "Selected: " + formatted);
}).keyup(function() {
    $(this).search();
    $(this).css("background-color", "#D6D6FF");
});

1 个答案:

答案 0 :(得分:0)

你应该在自动完成回调函数中执行此操作:

$( "#autocomplete" ).on("autocompleteselect", function( event, ui ) {
 //bind keyup event here
});