Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在带有预定义标记的select2插件中设置knockout.js_Javascript_Jquery_Knockout.js_Jquery Select2 - Fatal编程技术网

Javascript 如何在带有预定义标记的select2插件中设置knockout.js

Javascript 如何在带有预定义标记的select2插件中设置knockout.js,javascript,jquery,knockout.js,jquery-select2,Javascript,Jquery,Knockout.js,Jquery Select2,我有一个select2输入字段,我想用tags选项预设它,如下所示: <input type="hidden" data-bind="value: myTags, select2: { tags: ko.toJS($root.Tags), minimumInputLength: 1, tokenSeparators: [',', ' '] }" /> 然后,我当然想输入新的标记,以便可观察的myTags包含数据库中已经存在的标记+输入的新标记。 这是一场持续的斗争。作为带有基于标记

我有一个select2输入字段,我想用tags选项预设它,如下所示:

<input type="hidden" data-bind="value: myTags, select2: { tags: ko.toJS($root.Tags), minimumInputLength: 1, tokenSeparators: [',', ' '] }" />
然后,我当然想输入新的标记,以便可观察的myTags包含数据库中已经存在的标记+输入的新标记。 这是一场持续的斗争。作为带有基于标记的自动完成的输入的myTags字段,从标记数组传递id字段,新的输入当然是文本字符串。因此,我有两个问题: 如何让myTags注册预定义标记的名称,而不仅仅是id B如何获取myTags的值以在db保存中使用它

这是一把小提琴:

注意:提琴中的SelectedText上下文是由于我希望标签在我的应用程序中与下拉选择的TextBatch一起使用


谢谢你的帮助

你仍然应该提供一个选择绑定,我看不出你的小提琴里有什么地方。我已经看过了,但它并没有让我更聪明。因为我想输入我自己的标签,所以我必须使用一个字段,对吗?据我所知,selectedOptions选项适用于,而不是?签出。我已经删除了所有我认为与您实际问题无关的代码,我认为这些问题是如何在标记模式下从select2框中获取所选标记-如果我错了,请纠正我。现在有了一个可观察的数组,它会根据更改事件进行更新,并包含用户选择的所有内容。这对你有帮助吗?我想我们已经很接近了但是,删除标记不会在select2value绑定中删除它们。另外,我想将新标记的id设置为-1,并将文本属性配置为例如TagName或just name…我想您不能将新标记的id统一设置为-1。这样他们就不再是独一无二的了。只需将它们保持在初始值,即字符串值,一旦您将它们发布到服务器上,您就可以通过IsNumeric检查轻松识别新标记并做出相应的反应。无论如何,在客户机上设置新ID都是徒劳的。您注意到的错误已修复。我忘了打开可观测阵列。
self.Tags = ko.observableArray(dataFromServerCollectedWithGetJSON);
self.myTags = ko.observable();