我在表单中使用jQuery plugin chosen。我想标记新元素,以便在表单提交时将它们添加到数据库中。
我在尝试:
$('#id_tags').chosen({
display_selected_options: false,
create_option: function(term) {
var chosen = this;
$.ajax({
type: 'POST',
url: '/aj/tag/neu/',
data: {
tag_name: term
}
}).done(function(data) {
chosen.append_option({
value: data.tag_id,
text: data.tag_name
});
$('li.search-choice:contains(' + data.tag_name +')').addClass("new");
});
}, ...
}
它适用于每个新的 est 元素,即最近添加的元素A添加了“new”类,但是当添加另一个元素B时,从A中删除“new”类。并且只出现在B.
<ul class="chosen-choices">
<li class="search-choice"><span>A</span><a data-option-array-index="1" class="search-choice-close"></a></li>
<li class="search-choice new"><span>B</span><a data-option-array-index="174" class="search-choice-close"></a></li>
</ul>
为什么?或者我如何能够为所有添加的元素提供持久性标记?
答案 0 :(得分:0)
您必须将该类添加到真实&lt;选项&gt;元素,然后做一个
$('#myRealSelect').trigger('chosen:updated');
并且您的课程将保留在您选择的列表中。