Jquery自动完成选择TypeError:ui.item未定义

10

我正在使用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>

我已经在网络上搜索了很久,但现在感到非常困惑。

非常感谢任何帮助。

3个回答

15

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);
  };

3
原来我需要更改。
data("ui-autocomplete" )._renderItemData = function( ul, item ) {

并且。
.data( "item.autocomplete", item )

to

data("ui-autocomplete" )._renderItem = function( ul, item ) {

并且

.data( "item.autocomplete-item", item )

希望这可以帮助那些在使用jQuery UI进行迁移时遇到问题的人。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接