1

tagitオートコンプリート(http://webspirited.com/tagit/)を使用しようとしています。デモページはすべてのブラウザで正常に機能します。forms.pyにオートコンプリートウィジェットのクラスがあり、tagitの次のコードがあります

js = "$('#%s').tagit({\
    tagSource: '%s?type=%s',\
    minLength:2,\
    select:true,\
    initialTags: %s,\
    allowNewTags: false, \
});" % \
(autocomplete_id, url, name, json.dumps(tags));
return u"<ul%s /><script type='text/javascript'>%s</script>" % (flatatt(auto_final_attrs), js)

URLは次のとおりです。

http://localhost:8000/search/terms/auto?type=naics_code

URLがヒットし、json応答データがIE9コンソールに表示されます。ただし、オートコンプリートボックスは表示されません。この問題はIE9でのみ発生します。私はjquery1.7.1とjquery-ui-1.8.2-customを使用しています。jquery-1.8.18-customでも試してみましたが、変更はありません。事前定義されたタグ配列を使用するtagSourceと、IE9で正常に機能しますが、URLからデータを取得しようとすると、URLをハードコーディングしても機能しません。

質問を投稿するときにStackOverflowにあるTagsオプションのようなものを実装したいのですが、表示されるデータはURLからのものである必要があります。私の問題は、IE9では機能しませんが、他のすべてのブラウザーでは機能しないことです。IE9 +のプロジェクトを実装しているため、古いバージョンのIEでは試しませんでした。

どんな助けでも大歓迎です。どうもありがとう。

4

1 に答える 1

0

このテンプレートをチェックしてください: http://tag-it-autocomplete.heroku.com/

オートコンプリート (プリロードされたタグだけでなく、AJAX 1) で動作します。

ソースは次のとおりです: https://github.com/makaroni4/tag-it-autocomplete

Tagit 構成は次のようになります。

$(document).ready(function() {
  $("#mytags").tagit({
    tagSource: function(search, showChoices) {
      var that = this;
      $.ajax({
        url: "/tags/autocomplete.json",
        data: {q: search.term},
        success: function(choices) {
          showChoices(that._subtractArray(choices, that.assignedTags()));
        }
      });
    },
    show_tag_url: "/tags/",
    singleField: true,
    singleFieldNode: $('#submit_tag_names')
  });
});

ここで、 qは get リクエストのパラメーター、「/tags/」は各タグのパスなので、「rails」タグがある場合は「/tags/rails」パスとのリンクになります。

Tag-it で作業するために必要なものはすべて揃っているようです。

于 2012-04-23T16:00:28.843 に答える