12

我有一个使用淘汰赛填充的选择框。一旦用户在表单上进行了一些选择,我想将该选择框重置为其在optionsCaption. 你会怎么做呢?我试图将它设置为一个空字符串,但这留下了用户选择的值。

这是我的代码:

<select data-bind="options: components, optionsValue: 'Component', optionsText: 'Component', optionsCaption: 'Choose Component', value: component"></select>

这是js:

self.components = ko.observableArray(["Component":"1234", "Component":"5678"]);
self.component = ko.observable();

然后我在另一部分尝试做的是:

self.component("");

但是,这似乎没有效果。

编辑:这是一个小提琴http://jsfiddle.net/BASY4/

4

2 回答 2

26

利用

self.component(null);

代替

self.component("");

工作 jsfiddle

只有在源列表(此处为 self.components)中才允许其他值,否则立即重置值绑定。

于 2013-08-21T16:22:27.480 回答
12

根据您使用的 knockoutjs 版本,将更改此问题的答案。

如果您使用jsfiddle 使用的2.2.1版本,那么您将需要使用;

self.component(null);
// or
self.component(undefined);

如果您要将此版本更改为最新版本2.3.0,那么您可以实际使用;

self.component(null);
// or
self.component(undefined);
// OR
self.component('');
于 2013-08-21T21:05:44.350 回答