在自动完成选择时,应显示ajax调用响应

时间:2015-04-24 05:04:48

标签: ajax autocomplete jquery-autocomplete

我正在使用自动完成jquery函数来获取搜索框中的内容。

我正在进行一次ajax调用( ajax1 )以获取自动填充搜索框的内容,

在选择任何内容时,我正在再做一次ajax调用( ajax2 )以根据之前选择的值获取另一组数据。数据正在填充,但它得到了仅在搜索框的点击或按键上显示。 我希望自动填充。有什么办法吗? 此外,在按下搜索框时,它正在搜索ajax2中填充的内容,这应该来自内容ajax1。

有没有办法解决这个问题?

代码:

jQuery( "#Mobile" ).autocomplete({

     source: function(request, response) {
     jQuery.getJSON(ajax1, { term:request.term}, function(data){
        response(data);
        autocomplte_loading=false;
    });
  },
      highlightClass: "highlight",
      close:function(event,ui)
      {
        jQuery('.ui-autocomplete').html('');
      },
      response: function(event, ui) 
      { },
      select: function(event, ui) { 
        var selectedObj = ui.item;  
        jQuery('#Mobile').addClass('ui-autocomplete-loading');            
        autocomp_data = {datas};
        jQuery('input[name=Mobile]').val(selectedObj.id);
                   //     if(jQuery( "#Mobile" ).length >0) {
                        jQuery( "#Mobile" ).autocomplete({

                        source: function(request, response) {
                        jQuery.getJSON(ajax2, { "data"}, function(data){
                        response(data);
                        autocomplte_loading=true;
                       // jQuery("#Mobile").autocomplete('search',last_search_term); 
                        });
                        },
                        highlightClass: "highlight",
                        close:function(event,ui)
                        {
                        jQuery('.ui-autocomplete').html('');
                        },
                        response: function(event, ui) 
                        {},
                        select: function(event, ui) {

                        jQuery('#Mobile').addClass('ui-autocomplete-loading');            
                        autocomp_data = {selectedproject:selectedObj.id, project:selectedObj.value, location:selectedObj.location, datafromhome: true};
                        jQuery('input[name=Mobile]').val(selectedObj.id);                

                        }
                        }).data("ui-autocomplete")._renderItem = function(ul, item) {
                        var $a = jQuery("<a class ='x' for='as' href='javaScript:void(0);' id='test'></a>").text(item.name);
                       // jQuery("#Mobile").append($a).appendTo(ul); 
                        return jQuery("<li></li>").append($a).appendTo(ul);

                        };
                          jQuery("#Mobile").autocomplete('search',last_search_term); 
        }
    }).data("ui-autocomplete")._renderItem = function(ul, item) {
            var $a = jQuery("<a data-url='"+item.projecturl+"' data-id='"+item.id+"' data-label='"+item.label+"'></a>").text(item.label);
            var desired = this.term.replace(/[^\w\s]/gi, '');
            last_search_term=desired;
            highlightText(desired, $a);
            return jQuery("<li></li>").append($a).appendTo(ul);
        };

0 个答案:

没有答案