質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
jQuery UI

jQuery UI はjQuery公式のインターフェースライブラリであり、対話型のウェブアプリケーションを作る際に役立ちます。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

3回答

10564閲覧

【jquery UI】動的に追加したテキストボックスに、autocompleteを適応したい

sanset

総合スコア186

jQuery UI

jQuery UI はjQuery公式のインターフェースライブラリであり、対話型のウェブアプリケーションを作る際に役立ちます。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

1クリップ

投稿2015/06/17 06:20

編集2015/06/17 07:04

タイトルの通り、html()等で動的に追加したテキストボックス要素に対して、
Jquery UIのautocompleteが使用できなくて困っています。
【追記】
最初に存在する#sampleのテキストボックスで値を送った後、
一度empty()して、Jqueryで同じテキストボックスをhtml()で生成しています。
2回目以降からautocompleteが効かなくなるという意味です。(#searchも.searchも効かない)

lang

1 //この記述だと動かない 最初からあるテキストは動く 2 $("#search").autocomplete({ 3 source: function(req, resp){ 4 $.ajax({ 5 // サジェスト処理 6 }); 7 }

動的に追加されたメソッドに対しては.onを使用するとのことでしたが、下記のように記述してもautocompleteでは動きませんでした。

lang

1 //この記述でも動かない 2 $(document).on("autocomplete","#search", function() { 3 source: function(req, resp){ 4 $.ajax({ 5 // サジェスト処理 6 }); 7 }

このようなケースに対して、autocompleteを使用する方法はございますでしょうか。
どなたかアドバイスを頂けると幸いです。よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

inaさんが書かれている通り、動的に追加したあとに
以下のように定義したfunctionを呼び出してbindしてみては?

lang

1var autocompleteInit = function() { 2 $("#search").autocomplete({ 3 source: function(req, resp){ 4 $.ajax({ 5 // サジェスト処理 6 }); 7 } 8 }); 9};

他のやり方もあると思いますので参考までに。

投稿2015/06/17 08:00

icham

総合スコア559

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sanset

2015/06/17 10:22

この方法で出来ました。具体例までありがとうございます。
guest

0

autocompleteはイベントではないので、.onでは無理なんじゃないでしょうか。
動的に要素を追加した後、もしくは追加と同時に実行するのは難しい状況でしょうか?

投稿2015/06/17 07:13

ina

総合スコア127

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sanset

2015/06/17 10:23

ありがとうございます。解決しました。 大変申し訳ないのですが、具体例も出していただいたichamさんをベストアンサーにさせて頂きました。 先に回答頂いたのに申し訳ありません。またよろしくお願いいたします。
guest

0

質問ですが、後から動的に追加された要素には同一のIDが振られているのですか?
でしたら、動かないと思います。
IDは必ず一意になるようにしなくてはならず、同一のものは許可されていません。
クラスを利用すべきです。

投稿2015/06/17 06:31

orange0190

総合スコア1698

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sanset

2015/06/17 06:46

回答ありがとうございます。 上記の#searchはユニークなものです。 一応クラス(.search)で書き換えてみましたが動きませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問