[英]django + tagging with jquery
我想使用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]
找到解決我問題的方法。 正如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
。 當我們用add
替換fill
時: $(".tags").tagit("add", data);
,然后它的工作原理。
作為你提到的tagit插件的創建者,我想我可以幫助你。
從我可以看到它看起來你正在使用它作為表單的一部分,當你點擊提交你驗證服務器端的表單,如果發生錯誤你重新加載頁面與表格值拖?
我建議你做的是啟用隱藏的選擇選項( 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,這比上面的方法更整潔:)
你應該檢查jQuery Select2對標記的支持。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.