Jquery Autocomplete选择TypeError:ui.item undefined

时间:2013-09-19 04:16:54

标签: javascript jquery html 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>

我已经扫过网了但是我已经到了一个点,我发现我的头撞在桌子上。 非常感谢任何帮助。

3 个答案:

答案 0 :(得分:13)

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

.data('item.autocomplete')

已弃用赞成

.data('ui-autocomplete-item')

从jQuery UI 1.9开始,从jQuery UI 1.10开始删除

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

答案 1 :(得分:5)

我遇到了类似的问题,但这是因为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);
  };

答案 2 :(得分:3)

结果我不得不改变

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

.data( "item.autocomplete", item )

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

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

希望这可以帮助任何有jQuery UI迁移问题的人