jQuery自动完成小部件显示建议下拉列表中的上一个结果

时间:2013-03-14 09:26:27

标签: jquery jquery-autocomplete

我从“admin / ajax.php”文件中获取了正确的JSON结果。     示例:首先我输入1并获得许多记录,但它没有显示在建议下拉列表中。但是当我键入9时,它意味着在文本框19中它显示我下面的记录而不是19的结果。

<input type="text" id="invoice_id1" size="20" name="invoice_no" value="" 
    class="ui-widget" onkeyup="find_suggestion(invoice_id1,memberid,this.value);" />

<script>
    function find_suggestion(div_id,memberid,invoice){
        $.post("admin/ajax.php?action=invoice_suggestions", 
            {div_id: div_id,memberid:memberid,invoice:invoice},
            function(data){
                if(data){
                    var tags = data
                    $( "#"+div_id).autocomplete({source: tags});
                }

            }
            , "json"
        );
    }
</script>

1 个答案:

答案 0 :(得分:1)

更传统的方法是使用函数作为执行ajax调用的源。我会完全删除onkeyup并将其附加到就绪或加载上。

我不确定你为什么要通过div_id或来自memberid的地方。我也不清楚为什么你发帖而不是得到。如果你提供更多细节,我可以进一步提供帮助

$("#invoice_id1").autocomplete({
    source: function (request, response) {
        $.post({
            url:"admin/ajax.php?action=invoice_suggestions",
            dataType: "json",
            data: {div_id: '#invoice_id1',
                   memberid:memberid,
                   invoice:this.value
            },
            success: function(data) { 
                     response( return data; ) 
            }
     }),
     minLength: 1
});