2

jQuery UI のオートコンプリートに奇妙な問題があります。テキスト フィールドがフォーカスされると、オートコンプリートのすべてのオプションのリストが表示されるようにします。これは機能しますが、アイテムをクリックして選択すると、提案は開いたままになります。オートコンプリートが正常に機能するように、提案リストを非表示にしたい。

キーボードでアイテムを選択すると問題なく動作しますが、アイテムをクリックすると、リストが何度も何度も再表示されます。

この問題をさらに奇妙にするために、値を手動で渡すだけで機能が完全に機能します。JSONソースを渡したときにのみ発生し始めます。

何か案は!?

作業コード- http://jsbin.com/aFeceTe/1/edit?html,js,output

$(document).ready(function(){

   var test = [ { value: "1",label: "Google" }, { value: "2", label:"StackOverflow" }, { value: "3", label:"Microsoft" }, { value: "4", label:"Yahoo" } ];

   $("input").autocomplete({
     source: test,
     delay: 0,
     minLength: 0,
     select: function(event, ui) {      
        event.preventDefault();
        $(this).val(ui.item.label).attr('title', ui.item.label);
     }
  }).focus(function () {
      $(this).val('').autocomplete("search");
  });

});

壊れたコード- http://jsbin.com/uyOGUVU/6/edit?html,js,output

$(document).ready(function(){

   $("input").autocomplete({
      source: 'http://jsbin.com/IdIXIRU/3/js',
      delay: 0,
      minLength: 0,
      select: function(event, ui) {      
         event.preventDefault();
         $(this).val(ui.item.label).attr('title', ui.item.label);   
      }
   }).focus(function () {
      $(this).val('').autocomplete("search");
   });

});
4

1 に答える 1