Jquery Ajax只完成一次Autcomplete

时间:2017-02-20 09:00:04

标签: javascript jquery ajax

我有一个类别列表,我想发送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

    });

 });

0 个答案:

没有答案