10

jquery ui 1.10.3 と jquery 2.0.3 を使用しています。オートコンプリート機能を使用して、オートコンプリートの提案されたオプションからオプションを選択する際に別のテキスト ボックスのテキストを変更しようとしています。

以下は、オートコンプリート機能の私のコードです。必要に応じて結果を取得しますが、オプションを選択するとTypeError: ui.item is undefinedエラーが発生します。

<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>

私はネットを精査しましたが、テーブルに頭をぶつけているところまで来ました。どんな助けでも大歓迎です。

4

3 に答える 3

15

1 つのデータ プロパティのみを変更する必要があります。

.data('item.autocomplete')

を支持して廃止されました

.data('ui-autocomplete-item')

jQuery UI 1.9以降、jQuery UI 1.10以降削除

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

于 2014-03-27T00:37:53.690 に答える
6

私も同様の問題を抱えていましたが、これは jQuery のドキュメントに jQuery UI 1.10 の使用法が示され、私たちの Web サイトはまだ 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);
  };
于 2014-10-14T09:09:29.713 に答える
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 で移行の問題を抱えている人に役立つことを願っています

于 2013-09-19T17:30:48.783 に答える