簡體   English   中英

表單顯示,同時將基於標簽的行為與jquery tag-it插件集成

[英]Form display while integrating acts-as-taggable-on gem with jquery tag-it plugin

好了,我能夠在通過act_as_taggable gem注冊其個人資料時成功存儲用戶定義的標簽。 問題在於顯示和更新它們。 出於顯示目的,我使用了jquery tag-it插件。

現在,gem將所有標簽作為單個字符串提供給表單,並在表單之間留有空格,而插件要求這些標簽在有序列表中,以便可以分別顯示所有標簽。

我的查看代碼:

如果我使用<%= f.text_field :intersted_list, class: 'form-control', id: 'intersted' %> ,則所有檢索到的標簽都顯示為單個標簽。

如果我使用:

<ul id="intersted"> <% resource.intersted_list.each do |tag| %> <li><%= tag %></li> <% end %> </ul>

所有標簽分別顯示。 但是,由於它們不再保留在表單中,因此我無法添加或更新它們。

JavaScript代碼:

$("#intersted").tagit();

所有指針將不勝感激..預先感謝..

我懷疑您的代碼還有其他問題,因為我相信您所擁有的應該可以工作。

Tag-it有幾種構建窗口小部件的不同方式。 您可以在https://aehlke.github.io/tag-it/examples.html的HTML源代碼中看到很多這樣的內容。 請注意,不幸的是,該頁面通過非HTTPS鏈接需要jQuery,因此您可能必須禁用瀏覽器的保護,以防止在HTTPS頁面上包含HTTP資產。

使用單個輸入的最快方法是將字段的值設置為逗號分隔的列表,例如<input name="tags" id="singleFieldTags2" value="Apple, Orange"> ,然后啟動小部件沒有任何選項: $('#singleFieldTags2').tagit(); 這是示例頁面上的“單個輸入字段(2)”選項。 如果您沒有使用此選項使標簽正確顯示,聽起來您的ERB沒有生成正確的HTML(盡管看起來應該正確)。 您可能希望一方面確認可以使用靜態HTML使Tag-it在頁面上正常工作,並且可以使用Ruby / ERB生成帶有逗號分隔的關鍵字的正確文本字段(不帶Tag-it) ) 在另一。

第二種方法也應該起作用,盡管您必須確保它包含在<form>元素內。 Tag-it將為您生成<input> ,但是它們必須采用表格形式才能提交。

好吧,我找不到這個問題的系統答案。 但是,在@Max的答案的幫助下,我剛剛找到了該問題的補丁。

我剛剛將value屬性添加到標簽。

<%= f.text_field :intersted_list, class: 'form-control', id: 'intersted', value: resource.intersted_list.to_s.gsub!(' ',',') %>

即使傳遞value標簽是多余的,它也解決了我的問題。

暫無
暫無

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

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