2017-10-17 90 views
0
$(elem).autocomplete({ 
         source: function(request, response) { 
          if (!names.length){ 
           names = [NoResultsLabel]; 
          } 
          response(names); 
         }, 
         response: function (event, ui) { 
          ui.content.push({ 
           label: "<button style=\"float:left;\" class=\"btn btn-default\" id=\"optionless\" onclick=\"previousSchools('"+elem.id+"','"+elem2.id+"')\"><<</button> <button style=\"float:right;\" class=\"btn btn-default\" id=\"optionless\" onclick=\"newSchools('"+elem.id+"','"+elem2.id+"')\">>></button>", 
           button: true 
          }); 
         }, 
         select: function (event, ui) { 
          if (ui.item.label === NoResultsLabel) { 
           event.preventDefault(); 
          } 
          for(var i=0;i<data.schools.length;i++){ 
           if(ui.item.label == names[i]){ 
            elem2.value = ids[i]; 
            i = data.schools.length; 
           } 
          } 
         }, 
         close: function(event, ui) { 
          requests_schools = 0; 
         } 
        }); 
        $.ui.autocomplete.prototype._renderItem = function (ul, item) { 
         if(item.label == '<button style="float:left;" class="btn btn-default" id="optionless" onclick="previousSchools($(elem))"><<</button> <button style="float:right;" class="btn btn-default" id="optionless" onclick="newSchools($(elem))">>></button>') 
          return $("<li class='button-element'></li>") 
            .data("item.autocomplete", item) 
            .html(item.label) 
            .appendTo(ul); 
         return $("<li></li>") 
           .data("item.autocomplete", item) 
           .html(item.label) 
           .appendTo(ul); 
        }; 
        openSchoolsSuggestions(elem); 

这是自动完成的,我已经具有相同名称略有差别,所以我通过在响应添加按钮设计定制的“分页程序”,许多成果,就是它的工作原理第一页,但未来它关闭自动完成窗口,并删除输入(名称)值jQuery的自动完成搜索无法正常工作第二次

下,为分页程序之前的功能:

function newSchools(elemx,elem2){ 
     var elem = $('#'+elemx); 
     if(requests_schools < 0) 
      requests_schools = 0; 
     requests_schools++; 
     var value = elem.val(); 
     elem.autocomplete("destroy"); 
     elem.val(value); 
     getSchools(document.getElementById(elemx),document.getElementById(elem2)); 
    } 

    function previousSchools(elemx,elem2) { 
     var elem = $(elemx); 
     requests_schools--; 
     if (requests_schools >= 0) { 
      var value = elem.val(); 
      elem.autocomplete("destroy"); 
      elem.val(value); 
      getSchools(document.getElementById(elemx),document.getElementById(elem2)); 
     } 
    } 

    function openSchoolsSuggestions(elem){ 
     elem = $(elem); 
     elem.autocomplete("search"); 
    } 

回答

0

我找到了解决办法,我需要改变newSchools和previousSchools中的选择器,第一行tr应归为var elem = $(document.getElementById(elemx));