プロが教える店舗&オフィスのセキュリティ対策術

こんにちは

JQuery の autocompleteを使って、ajaxでDBを参照し、社員名をサジェストしたいです。



普通にemployee_nameのタグがHTMLに印字してあるのであれば、以下のソースでうまくいきました。

$(function() {
$("#employee_name").autocomplete({
source: "http://URL",
change: function(event, ui) {
    処理
  }
});
});


しかし悩んでいるのは、表示したいemployee_nameのタグは、divのinnerHTMLとしてPHPから動的に書かれたものなのです。。。
このような場合は、上記ソースではうまくいきません。


そこで、jQueryの関数$(#xx).autocomplet()を使わず、
直接employee_nameのインスタンスにautocomplete()関数を呼ぶ形を試しましたが、
動作してくれませんでした。。。


何か良い書き方があればご教授いただけないでしょうか。

初心者ゆえうまく説明できていなかったらすみません!!

恐れ入りますが、よろしくお願いいたします。

A 回答 (1件)

こんにちは。



状況をきちんと把握できていない部分もありますが・・・

>divのinnerHTMLとしてPHPから動的に書かれたものなのです。。。
$(function() { ~~ はHTMLソースの読込とパースが終わった時点で関数内のスクリプトが実行されますが、その時点ではまだ #employee_name の要素が存在しないってことですよね?
存在しない要素に対して、処理を設定しようとしてもうまくいかないというご質問と解釈しました。

>divのinnerHTMLとしてPHPから動的に書かれたものなのです。。。
PHPへのリクエストをどのようなタイミングで行っているのか不明ですが、スクリプトを利用したajaxなどで該当する要素を生成しているのではないかと想像します。
それなので、生成するタイミングさえスクリプト側で把握できるのであれば、その後の処理としてautocompleteの設定を行うことで、意図なさっている動作をするのではないでしょうか?
(ajaxと仮定して)具体的には、ajaxのcallback内やsuccess時の関数内で設定処理を行うようにすればよろしいかと思います。
    • good
    • 0
この回答へのお礼

お礼が遅くなってすみませんでした!


まだ私の経験値が少なくて未解決なんですが、ちょと整理できました。
もうすこし越し時間をかけて取り組んでみます。
取り急ぎお礼まで・・・

お礼日時:2016/06/02 13:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!