Jquery 淘汰版v3,带有选定的多选标记
我已经开始扩展所选库,创建一个动态标记功能,使用敲除观测值来保存所选值,但是我遇到了几个问题。希望有人能提供一些帮助 观察到的问题:Jquery 淘汰版v3,带有选定的多选标记,jquery,knockout.js,twitter-bootstrap-3,jquery-chosen,Jquery,Knockout.js,Twitter Bootstrap 3,Jquery Chosen,我已经开始扩展所选库,创建一个动态标记功能,使用敲除观测值来保存所选值,但是我遇到了几个问题。希望有人能提供一些帮助 观察到的问题: 输入两个以上的标记将删除第一个输入后添加的所有项目,并将其替换为最后输入的标记。从标记列表中选择选项效果很好,但是输入新标记会强制执行与前面提到的相同的行为 自定义KO绑定: ko.bindingHandlers.chosenTagging = { init: function (element, valueAccessor, allBindings) {
输入两个以上的标记将删除第一个输入后添加的所有项目,并将其替换为最后输入的标记。从标记列表中选择选项效果很好,但是输入新标记会强制执行与前面提到的相同的行为 自定义KO绑定:
ko.bindingHandlers.chosenTagging = {
init: function (element, valueAccessor, allBindings) {
$(element).chosen({ width: '100%', disable_no_results: true, enable_custom_content: true, placeholder_text_multiple: 'Enter Tag(s)' });
var valuesObservable = allBindings.get('selectedOptions');
var updateList = function () {
$(element).trigger('chosen:updated');
}
if (valuesObservable && typeof (valuesObservable.subscribe) == 'function') {
valuesObservable.subscribe(updateList);
}
},
update: function (element, valueAccessor, allBindings) {
$(element).trigger('chosen:updated');
}
};
JSFiddle:注意:如果您在fiddle中为所选JS添加了任何内容,请说明进行更改的行号 类似的帖子可以在这里找到:你有一个:
$(element).trigger('chosen:updated');
一
$(element).trigger('liszt:updated');
我想最后一个是从Selected中删除的,它是上一个版本的语法。
(虽然这可能不是你问题的答案)
另一个问题是当
绑定中的可观察项发生更改,但没有(chosentaging:{}
)
至于您真正的问题,我认为如果没有选项
绑定,那么选择选项
绑定就无法正常工作。使用
选项
绑定,它可以正常工作:
如果您想保留使用
启用自定义内容模式输入自定义输入的可能性
必须找到一个解决方法。我相信select:在新事件触发器中为select behavior更新,而liszt:更新为旧方法。我已经更新了上面的代码以使用最近的事件。我也注意到在提交第一个条目时更新没有触发。关于如何首先实现这一点,您有什么想法吗?似乎enable_custom_content_模式存在问题。如果添加选项
绑定。我需要进一步调查我认为如果没有选项
绑定,您就无法真正使用,如果您真的需要这种模式,我们需要一种解决方法。我以前在那里有选项,但是,它没有提供太多区别。。现在,我将更新JSFIDLE以合并它。