Jquery Autocomplete选择TypeError:ui.item undefined

Ela*_*uwa 8 html javascript jquery jquery-ui autocomplete

我使用的是jquery ui 1.10.3和jquery 2.0.3.我正在尝试使用自动完成功能更改另一个文本框的文本,从自动完成的建议选项中选择一个选项.

下面是我自动完成功能的代码.我确实得到了所需的结果,但是当我从中选择一个选项时,我得到了TypeError:ui.item是未定义的错误.

<script language="javascript">
$(document).ready(function(){
    $('#item_code').autocomplete({
    source: "http://localhost/test/item/search_item",
        minLength: 1,
        select: function( event, ui ) {
            $( "#item_description" ).val(ui.item.description );
            return false;
        }
    }).data("ui-autocomplete" )._renderItemData = function( ul, item ) {
        return $( "<li></li>" )
            .data( "item.autocomplete", item )
            .append( "<a>" + item.value + " - " + item.description + "</a>" )
            .appendTo( ul );
    };
});   
</script>
Run Code Online (Sandbox Code Playgroud)

我已经扫过网了,但我已经到了一个点,我发现我的头撞在桌子上.任何帮助是极大的赞赏.

jos*_*der 14

您只需要更改一个数据属性:

.data('item.autocomplete')
Run Code Online (Sandbox Code Playgroud)

被弃用赞成

.data('ui-autocomplete-item')
Run Code Online (Sandbox Code Playgroud)

截至jQuery UI 1.9并从jQuery UI 1.10中删除

http://jqueryui.com/upgrade-guide/1.10/#re​​moved-item-autocomplete-data-use-ui-autocomplete-item


gun*_*erz 6

我有一个类似的问题,但这是因为jQuery文档现在显示了jQuery UI 1.10的用法,而我们的网站仍在使用jQuery UI 1.8.20。

这最终对我有用。

  .data("autocomplete")._renderItem = function (ul, item) {
      return $("<li>")
      .data("item.autocomplete", item)
      .append("<a>" + item.label + "<br><b>" + item.category + "</b></a>").appendTo(ul);
  };
Run Code Online (Sandbox Code Playgroud)