2017-04-10 7 views
0

jQueryオートコンプリートに問題があります。私はinputACCO_KEYの結果を得るために以下の関数を使用しています。 問題は、結果が表示されないことですが、divの下のオートコンプリートフォームが表示されるため、明らかに関数から何かが返されますが、常に空です。時にはそれは長く、時には短くなる場合があります(返される結果の数によって異なります)が、常に空です。空のテーブルから何かを選択すると、入力に表示される結果も空になります。Jqueryオートコンプリートは結果を返しますが、結果に何も表示されません

機能:

["{"First":"BOŠTJA S.P.","Second":"160001670"}", 
"{"First":"GOLF KLUB","Second":"110001615"}", "{"First":"IRENA","Second":"150001322"}"] 

答えて

0

Selectメソッドがfalseを返す必要があります。それ以外の場合は、想定どおりに動作しません。

全作業例:

$("#inputACCO_KEY").autocomplete({ 
     source: function (request, response) { 
     $.ajax({ 
      method: 'post', 
      url: "/wsSeCAMERC/GetCA/", 
      data: { 
      prefixText: $("#inputACCO_KEY").val(), 
      count: 30 
      }, 
      dataType: 'json', 
      success: function (data) { 
      response($.map(data, function (item, i) { 
       return { 
       label: item.cACCO_NME, 
       value: item.iACCO_KEY 
       }; 
      }) 
      ); 
      }, 
      error: function (data) { 
      alert('error!'); 
      } 
     }); 
     }, 
     minLength: 3, 
     select: function (event, ui) { 
     $("#inputACCO_KEY").val(ui.item.label); 
     $("#iACCO_KEY").val(ui.item.value); 
     return false; 
     } 
    }); 
    }); 
1

結果はタイプのものである:

$("#inputACCO_KEY").autocomplete({ 
     source: function (request, response) { 
     $.ajax({ 
      method: 'post', 
      url: "/wsSearchCAMERC/GetCAACCOSearchAll/",   
      data: { 
      prefixText: $("#inputACCO_KEY").val(), 
      count: 30 
      }, 
      dataType: 'json', 
      success: function (data) { 
      response($(data).map(function (item, i) {    
       return {     
       label: item.First, 
       value: item.Second 
       }; 
      }) 
      ); 
      }, 
      error: function (data) { 
      alert('error'); 
      } 
     }); 
     }, 
     minLength: 3, 
     select: function (event, ui) {   
     log("Selected: " + ui.item.value + " aka " + ui.item.id); 
     } 
    }); 
    }); 

enter image description here

結果は型である

[ "{" 最初 ":" BOŠTJA SP "、" Second ":" 160001670 "}"、 "{" 最初 ":" 第GOLF KLUB " "": "110001615"}"、 "{" 最初 ":" IRENA " "秒": "150001322"}"]

非常に音奇妙な。内側の文字列区切り文字がエスケープされていると仮定して、文字列の配列を持つようにします。これはあなたのケースであれば あなたがするマップ機能を変更する必要があります。

var data = ["{\"First\":\"BOŠTJA S.P.\",\"Second\":\"160001670\"}", "{\"First\":\"GOLF KLUB\",\"Second\":\"110001615\"}", "{\"First\":\"IRENA\",\"Second\":\"150001322\"}"]; 
 
var result = $(data).map(function (idx, ele) { 
 
    var item = JSON.parse(ele); 
 
    return { 
 
     label: item.First, 
 
     value: item.Second 
 
    }; 
 
}); 
 

 
console.log(result); 
 

 
$("#tags").autocomplete({ 
 
    source: function (request, response) { 
 
     var data = ["{\"First\":\"BOŠTJA S.P.\",\"Second\":\"160001670\"}", "{\"First\":\"GOLF KLUB\",\"Second\":\"110001615\"}", "{\"First\":\"IRENA\",\"Second\":\"150001322\"}"]; 
 
     response($(data).map(function (idx, ele) { 
 
      var item = JSON.parse(ele); 
 
      return { 
 
       label: item.First, 
 
       value: item.Second 
 
      }; 
 
     })); 
 
    } 
 
});
<link href="https://code.jquery.com/ui/1.12.0/themes/smoothness/jquery-ui.css" rel="stylesheet"/> 
 
<script src="https://code.jquery.com/jquery-1.12.3.min.js"></script> 
 
<script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script> 
 

 

 
<div class="ui-widget"> 
 
    <label for="tags">Tags: </label> 
 
    <input id="tags"> 
 
</div>

関連する問題