Javascript Jquery只能完成一次

Javascript Jquery只能完成一次,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个类别列表,我想发送id作为参数来获取子类别 但我想将响应保存到一个数组中,我不想对evevry autcomplete进行ajax调用..就在我从列表中更改项目时。我想另存为数组,因为如果每次都无法显示请求(例如,仅显示一项),则会附加所有子类别 这是我的实际代码 $('#category').change(function(){ var category_id = $(this).val(); console.log(category_id);

我有一个类别列表,我想发送id作为参数来获取子类别

但我想将响应保存到一个数组中,我不想对evevry autcomplete进行ajax调用..就在我从列表中更改项目时。我想另存为数组,因为如果每次都无法显示请求(例如,仅显示一项),则会附加所有子类别

这是我的实际代码

   $('#category').change(function(){ 
        var category_id = $(this).val();
        console.log(category_id);
    $("#type").autocomplete({
        source: function (request, response) {
            $.ajax({
                url: "/get-sub-by-cat",
                type: "POST",
               data: { 
                  'category_id': category_id
                 },
                success: function (data) {
                   // console.log(data);
                    response($.map(data.data.subcategories, function (item) {
                       console.log(item.name);
                        return {
                            label: item.name,
                            value: item.name,
                            id: item.id
                        };



                    }));
                }
            });
        },

        select: function (event, ui) {
            $('#type').val(ui.item.value);
            var id_subcategory= ui.item.id;
            $("#subcat").val(id_subcategory);
         },
         change: function (event, ui) {
             if (!ui.item) {
                 this.value = '';
                 $("#err-message").remove();
                 $(".type-label").before("<p id='err-message' class='col-xs-12 no-padding' style='color:red;margin-bottom:0;'>Please select only from suggested options</p>");
                 }
              else{
                 $("#err-message").hide();
             }
        },
        autoFocus: true

    });

 });

我认为您不需要自己保存响应,因为浏览器应该缓存响应。@George我怎么做?以最好的方式?