使用自动完成功能未正确选择项目

Item not correctly selected with autocomplete

本文关键字:选择 项目 功能 成功      更新时间:2024-06-07

我在Jquery中有一个带自动选择的文本字段,当你键入三个字母时,你会从数据库中得到一个查询并显示一些数据。我需要从_renderItem方法获取id属性,但我没有正确获取。下面是我的代码:

    $("#textField").autocomplete({
    minLength: 3,
    source: function(request, response) {
        var loadIdentities = "<?php echo $this->Html->url(array('controller' => 'Identities', 'action' => 'getIdentity')); ?>/" + Base64.encode(request.term);
        $.getJSON(loadIdentities, function(data) {
            response(data);
        });
    }
}).data("ui-autocomplete")._renderItem = function(ul, item) {        
     console.log(item.id);
     return $("<li>")           
        .append("<a>" + item.label + "</a>")
            .appendTo(ul);
};

在console.log(item.id)行中,我没有得到正确的值。当您用鼠标单击自动完成列表中的元素时,当您单击item.id没有正确更新,而显示的值是正确的item.id时,就会发生这种情况。

例如,如果您在文本字段中键入名称"John Smith",您将在自动完成中获得两个选项:John Smith和John Smithson。如果您点击选择"John Smithson"选项,您将拥有"John Smith"的item.id值,而我希望拥有"John Smith"的 id

我该如何解决这个问题?

我能够使用自动完成的选择方法来解决这个问题:

    select: function( event, ui ) {
            $("[name='elementName[0]']").val(ui.item.label);
            $("[name='elementID[0]']").val(ui.item.id);
            return false;
    }

我把它放在源代码后面,现在它起作用了。