2011-07-23 12 views
1

jQuery UI Autocompleteに検索を行わないように指示する方法はありますか?私はminLength本当に高いと設定することができますが、それを行う適切な方法がありますか?jQuery UIオートコンプリート:決してポップアップしないでください。

あなたが疑問に思っている場合は、代わりにonclickイベントで手動で起動しています。私はonclickのハンドラを追加する方法


if(settings.showOnClick) { 
    $(this).bind('click.ajaxselect', function(e) { 
     if(!$(this).data('focusHandled') && !$(this).autocomplete('widget').is(':visible')) { 
      $(this).autocomplete('search',''); 
      $(this).data('focusHandled',true); 
     } else { 
      $(this).data('focusHandled',false); 
     } 
    }).bind('focus.ajaxselect', function(e) { 
     if(!$(this).data('focusHandled') && e.hasOwnProperty('originalEvent') && $(this).val() === this.defaultValue && !$(this).autocomplete('widget').is(':visible')) { 
      $(this).autocomplete('search',''); 
      $(this).data('focusHandled',true); 
     } else { 
      $(this).data('focusHandled',false); 
     } 
    }) 
} 

答えて

1

セットの好きなことをするminLength(おそらく手動で0トリガーため)。その後、searchコールバックでこれを置く

$(".selector").autocomplete({ 
    select: function(event, ui) { 
     ... // do your thing 
     $(".selector").autocomplete("disable"); 
    } 
}); 

$(".clicker").click(function() { 
    ... // do your thing 
    $(".selector").autocomplete("enable"); 
}); 
+0

無効にすると、クリックしても検索がキャンセルされるようです。 – mpen

+0

クリック時にオートコンプリートをどのようにアクティブにしましたか? –

+0

更新を参照してください。 – mpen

1

私が欲しいものを主にやっているようだ。私は、0未満にminLengthを設定した場合、その後

search: function(e, ui) { 
    if(settings.minLength < 0 && e.hasOwnProperty('originalEvent')) return false; 
    // other code 
    return true; 
}, 

、入力したイベントは、検索をトリガしませんが、私の手動クリックイベントは引き続き行われます。フォーカスイベントもキャンセルされるようです。私はその行動に満足しているかどうかを判断しようとしています。

関連する問題