簡體   English   中英

django +用jquery標記

[英]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對標記的支持。

http://ivaynberg.github.com/select2/#tags

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM