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

时间:2013-08-21 11:59:08

标签: knockout.js

我有一个选择框,我正在使用淘汰赛填充。一旦用户在表单上做了一些选择,我想将该选择框重置回其在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/

2 个答案:

答案 0 :(得分:24)

使用

self.component(null);

而不是

self.component("");

工作 jsfiddle

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

答案 1 :(得分:11)

根据您使用的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('');