Jquery UI autoComplete設定max

1325 ワード

新版のJquery UIのようで、autoCompleteのoptionsにはmaxが入っていないので、私が知らなかったのかどうか分かりませんが、データ量が大きいと、非常に表示される可能性があります.だからコードを修正して、死んで、optionsに追加しませんでした.
Jquery-ui.jsの6659行のコードで、normalize関数の中にあります.
元は:
_normalize: function( items ) {
		// assume all items have the right format when the first item is complete
		if ( items.length && items[0].label && items[0].value ) {
			return items;
		}
		return $.map( items, function( item ) {
			if ( typeof item === "string" ) {
				return {
					label: item,
					value: item
				};
			}
			return $.extend({
				label: item.label || item.value,
				value: item.value || item.label
			}, item );
		});
	},

次のように変更します.
_normalize: function( items ) {
		// assume all items have the right format when the first item is complete
		if ( items.length && items[0].label && items[0].value ) {
			return items;
		}
        var i=0;
		return $.map( items, function( item ) {
            if(i >= 20 )
                return;
            i++;
			if ( typeof item === "string" ) {
				return {
					label: item,
					value: item
				};
			}
			return $.extend({
				label: item.label || item.value,
				value: item.value || item.label
			}, item );
		});
	},

最大20個まで表示されます.