jQueryによるDjango +タグ付け
質問
jQueryを使い、ユーザーにタグ付けインターフェースを作成します。 StackOverFlowのユーザーがどのようにして尋ねている質問の種類のタグを追加できるかと同様にしてください。 jQueryとTagitを使って作業するようになっています:
http:// jQuery。 WebSpirited.com/2011/02/jquery-tagit-a-jquery-tagging-plugin/
ライブラリの新しい場所:
https://github.com/hailwood/jquery-tagit
問題は、フォームの別の部分にエラーが発生し、[送信]をクリックすると、フォームがエラーメッセージでリロードされ、すべてのタグがなくなりました。 Djangoでタグ付けを得るための簡単な方法はありますか?
[編集]
Hailwoodの後の応答に基づいてこれを試してみてください...
<ul name="event_tag" class="tags">
<li class="tagit-choice" tagvalue="3">
Dog
<a class="tagit-close">x</a>
</li>
</ul>
.
しかし、ページロードをロードすると、その特定のタグはロードされていませんか? ul
タグがクリアされてから、その中にロードされている他の情報があります。ページをロードするとわかりません。
私は以下のように試した:
<ul name="event_tag" class="tags">
<li data-value="3">Dog</li>
</ul>
.
私がこのようにしてみると、それは2秒間現れ、それは消えます...
[編集2]
私の問題に対する解決策を見つけました。 Hailwoodが提案されたように、プログラムでは、以下のようにli
を作成できます。
<ul name="event_tag" class="tags">
<li data-value="3">Dog</li>
</ul>
.
理由私のために働いていなかったのは、私が初期値を持っていたからでした:
$.getJSON("ajaxrequest.json", function(data) {
$(".tags").tagit("fill", data);
});
.
問題は積み重ねがあるということでした、それはすべて消えていました。その理由はfill
のためです。 fill
をadd
に置き換えると、それから機能します。
解決
クリエイターであることはあなたが言及したタグトプラグイン私はあなたを助けることができると思います。
フォームの一部として使用しているように見え、サーバー側のフォームを検証するときにクリックすると、エラーが発生した場合は、パラメータの値が発生します。
あなたが隠している選択オプション(select: true
)を有効にすることです。
フォームが送信されると、選択したタグのリストが表示されます。
次に、ページをリロードすると、<li>
sとしてタグをリストにロードするだけです。
(Pythonがわかりませんので、次のようなものは疑似コードです)
if(form_values.tags)
for(tag in form_values.tags)
print '<li data-value=" '+tag.value+' "> '+tag.label+' </li>';
endfor;
endif;
.
* initialTags
オプションにタグを渡すこともできますが、それはJavaScriptを出力する必要があります。このIMOは上記の方法よりもTIDYが低いです。)
他のヒント
jQuery Select2のタグ付けのサポートをチェックしてください。