Knockout.js将select的值重置为其默认值

Dav*_*mon 12 knockout.js

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

这是我的代码:

<select data-bind="options: components, optionsValue: 'Component', optionsText: 'Component', optionsCaption: 'Choose Component', value: component"></select>
Run Code Online (Sandbox Code Playgroud)

这是js:

self.components = ko.observableArray(["Component":"1234", "Component":"5678"]);
self.component = ko.observable();
Run Code Online (Sandbox Code Playgroud)

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

self.component("");
Run Code Online (Sandbox Code Playgroud)

然而,这似乎没有效果.

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

Ric*_*ter 25

使用

self.component(null);

代替

self.component("");

工作 jsfiddle.

仅当它们位于源列表中时(此处为self.components)才允许其他值,否则立即重置值绑定.


Tim*_*mes 11

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

如果您正在使用版本2.2.1,就像jsfiddle正在使用的那样,那么您将需要使用;

self.component(null);
// or
self.component(undefined);
Run Code Online (Sandbox Code Playgroud)

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

self.component(null);
// or
self.component(undefined);
// OR
self.component('');
Run Code Online (Sandbox Code Playgroud)