1

http://docs.jquery.com/UI/Dialoghttp://docs.jquery.com/UI/Autocompleteを JQuery 1.7.2 と JQuery-UI 1.8.18 で使用しています。

通常どおりページに読み込まれると、オートコンプリートの罰金が発生するテキスト ボックスを含むフォームがあります。シンプルでいいですね!

(function() {

  jQuery(function($) {
    return $("#type").autocomplete({
      source: "/auto-suggest/supplies",
      minLength: 2
    });
  });

}).call(this);

ただし、フォームがダイアログを介してレンダリングされる場合、オートコンプリートは起動しません (UI は変更されず、サーバーはソース URL へのアクセスを示しません)。これは、ドキュメントの読み込み時に入力フィールドがレンダリングされていないためだと思います。そのため、ダイアログのcreateイベントを使用して、関数をコールバックとして渡すことにより、オートコンプリートを割り当てようとしました。繰り返しますが、オートコンプリートは起動しません。

これを機能させる方法がわかりません。ダイアログを作成してから、ドキュメントの読み込み時に非表示にしたくなるかもしれませんが、この例では、テーブル データに関連しているため、ダイアログのインスタンスが複数存在する可能性があります。

これについての助けは大歓迎です。

4

3 に答える 3

3

openイベントを使用してみてください- これにより、DOM 要素の準備が整っていることが保証されます

$( ".selector" ).bind( "dialogopen", function(event, ui) {
  $("#type").autocomplete({
      source: "/auto-suggest/supplies",
      minLength: 2
  });
});
于 2012-04-30T11:02:15.607 に答える
1

デリゲートを試す

委任オートコンプリート

最良の解決策は、ManseUK によって書かれました。

于 2012-04-30T10:58:37.980 に答える
1

値を取得してから、成功呼び出しダイアログで取得することもできます

$.get('/auto-suggest/supplies', function(data) {
  //call dialog here
});
于 2012-04-30T11:02:06.853 に答える