1

の再定義に問題があり_renderItemsます。問題は、アイテムをnullに設定していることです。つまり、エラーが発生しています

null のプロパティ 'casValue' を読み取れません

コード:

$(function() {
        $('.CasNumber').autocomplete({
            source: function(request, response) {
                $.ajax({
                    url: //url of the page
                    dataType: "json",
                    data: {
                        search_word: request.term,
                    },
                    success: function(data) {
                        response($.map(data.result, function(item) {
                            return {
                                label: item.Cas,
                                value: item.Cas,
                                casLabel: 'Cas No.',
                                casValue: item.Cas,
                                egLabel: 'Eg No.',
                                egValue: item.Eg,
                                REACHLabel: 'REACH No.',
                                REACHValue: item.ReachRegNumber,
                                indexLabel: 'Index-number',
                                indexValue: item.IndexNumber,
                                nameValue: item.Name,
                                data: item
                            }
                        }));
                    }
                });
            },
            minLength: 1,

            focus: function(event, ui) {


                $(".CasNumber").val(ui.item.casValue);
                return false;
            },

            select: function(event, ui) {
                log(ui.item.data, this);
                return false;
            },
            open: function() {
                $(this).removeClass("ui-corner-all").addClass("ui-corner-top");
            },
            close: function() {
                $(this).removeClass("ui-corner-top").addClass("ui-corner-all");
            }
        })
        .data("ui-autocomplete")._renderItem = function(ul, item) {
            return $("<li>")
            .data("item.ui-autocomplete", item)
            .append("//Format of the drop down list is here")
            .appendTo(ul);
        };
    });

デバッガーでアイテムの値を適切に取得してコードを実行すると、_renderItemリストが完全に描画されますが、フォーカスが開始されると (アイテムの選択後) ui.item parameter、null に設定されます。

4

2 に答える 2

1

右のアイテムのレンダリング:

    _renderItem = function( ul, item ) {
          return $("<li>")
        .attr("data-value", item.value)
        .append("<a></a>")
        .append(item.value)
        .appendTo(ul);
    };

タグ <a> に注意してください

于 2015-09-12T20:31:34.627 に答える
0

構造体の最初の要素は、適切に機能するためにアンカーである必要がありました。

于 2013-03-12T13:09:47.487 に答える