2012-03-07 32 views
4

私は、ajax経由でロードする複数のフォームを持つページを持っています。各フォームには、オートコンプリートする必要のあるテキストフィールドが1つ含まれています。各テキストには、オートコンプリートソースのデータ属性があります。例えば:これらの多くがあるかもしれませんjQuery UI:複数のフィールドでオートコンプリート、異なるソースを使用

<input type="text" class="district_name" data-autocomplete-source="['foo','bar','baz']" ... /> 

、彼らは異なる形に属し、別のレコードを変更しますが、オートコンプリートフィールドは、同じクラスになりますでしょう。

私はそう...

$('input.district_name').autocomplete({ 
    source: $('input.district_name').data('autocomplete-source') 
}); 

のようなこれらにオートコンプリートを呼び出す場合...そして、jQueryのUIは、一つのマスターリストに、各フィールドからソースをマージします。私の代わりに私が独自の親からソースをつかむだろう期待していたが、それはまったく動作しませんでした... ...

$('input.district_name').autocomplete({ 
    source: $(this).data('autocomplete-source') 
}); 

を呼び出してみました。これらのフィールドはajaxを介してページに追加されるため、個々のIDがどのクラスになるかは事前にわかりませんが、クラスのみです。多くの場合もあれば、少数の場合もありますが、それはユーザーが何をしているかによって異なります。

どうすれば解決できますか?

答えて

8

あなたは、各要素に対して個別にautocompleteを呼び出す必要があります:

$('input.district_name').each(function() { 
    $(this).autocomplete({ 
     source: $(this).data('autocomplete-source') 
    }); 
}); 
+0

パーフェクト、ありがとう! – Andrew

関連する問題