建议标签出现在点击输入 Django
Suggestion-tags appear on click in input Django
你好,我正在使用 Django 和 Taggit(Selectize),我想为用户提供点击 "suggestion-tags" 的选项,它们会出现在输入字段中。我写了一些 JS,它在控制台中工作但不在模板中。输入字段中没有标签出现,但给定的标签被保存,当用户重新加载页面时,标签显示在输入字段中。
$('.tags_select a').click(function() {
var valueText = $(this).text();
var input = $('#id_I_want');
oldInput = input.val();
$('#id_I_want').val(oldInput + " " + valueText);
newInput = input.val();
$(input).text(newInput);
return false;
});
{% load widget_tweaks %}
<p class="formItems"> {{ SetForm.I_want|add_class:"" }}</p>
<div class="tags_select">
<span>Tags</span>
<a href="#">Fun</a>
<a href="#">Lala</a>
<a href="#">Airline</a>
</div>
我也尝试进行 ajax 调用,但同样的内容保存并显示在控制台中,但单击时未显示在模板中。它是一种 Django 形式。我认为这是问题所在,或者与 Taggit 有关系。
有人知道如何让标签在点击时立即出现吗?
编辑:
所以为了弄清楚我想做什么:如果用户点击其中一个 "Trending Tags" 它应该出现在其他(已选择的)标签所在的输入字段中。
解决方案:
因此,感谢@Håken Lid,我找到了使用 Taggit 进行选择的解决方案:
$('.tags_select a').click(function() {
var selectize = $("#id_I_want_to_see")[0].selectize;
value = $(this).text();
selectize.createItem(value)
});
问题是由Selectize引起的。为了获得花哨的输入,它隐藏了实际的输入元素,并显示了 div 。 Div
可以包含具有样式的子元素,这与 input
不同。问题是没有双向绑定。因此,即使您更新隐藏输入,选择输入也不会反映这些更改。
您应该能够通过参考 selectize api 文档找到如何更新 selectize-input 中的值的解决方案:https://github.com/selectize/selectize.js/blob/master/docs/api.md
$('.tags_select a').click(function() {
var selectize = $("#id_I_want_to_see")[0].selectize;
value = $(this).text();
selectize.createItem(value)
});
你好,我正在使用 Django 和 Taggit(Selectize),我想为用户提供点击 "suggestion-tags" 的选项,它们会出现在输入字段中。我写了一些 JS,它在控制台中工作但不在模板中。输入字段中没有标签出现,但给定的标签被保存,当用户重新加载页面时,标签显示在输入字段中。
$('.tags_select a').click(function() {
var valueText = $(this).text();
var input = $('#id_I_want');
oldInput = input.val();
$('#id_I_want').val(oldInput + " " + valueText);
newInput = input.val();
$(input).text(newInput);
return false;
});
{% load widget_tweaks %}
<p class="formItems"> {{ SetForm.I_want|add_class:"" }}</p>
<div class="tags_select">
<span>Tags</span>
<a href="#">Fun</a>
<a href="#">Lala</a>
<a href="#">Airline</a>
</div>
我也尝试进行 ajax 调用,但同样的内容保存并显示在控制台中,但单击时未显示在模板中。它是一种 Django 形式。我认为这是问题所在,或者与 Taggit 有关系。
有人知道如何让标签在点击时立即出现吗?
编辑: 所以为了弄清楚我想做什么:如果用户点击其中一个 "Trending Tags" 它应该出现在其他(已选择的)标签所在的输入字段中。
解决方案: 因此,感谢@Håken Lid,我找到了使用 Taggit 进行选择的解决方案:
$('.tags_select a').click(function() {
var selectize = $("#id_I_want_to_see")[0].selectize;
value = $(this).text();
selectize.createItem(value)
});
问题是由Selectize引起的。为了获得花哨的输入,它隐藏了实际的输入元素,并显示了 div 。 Div
可以包含具有样式的子元素,这与 input
不同。问题是没有双向绑定。因此,即使您更新隐藏输入,选择输入也不会反映这些更改。
您应该能够通过参考 selectize api 文档找到如何更新 selectize-input 中的值的解决方案:https://github.com/selectize/selectize.js/blob/master/docs/api.md
$('.tags_select a').click(function() {
var selectize = $("#id_I_want_to_see")[0].selectize;
value = $(this).text();
selectize.createItem(value)
});