2013-08-21 62 views
11

我有一个选择框,我正在使用淘汰赛进行填充。一旦用户在表单上进行了一些选择,我想将该选择框重置为其在optionsCaption中设置的默认值。你会如何去做这件事?我试图将它设置为一个空字符串,但是这留下了用户选择的值。Knockout.js将选择的值重置为其默认值

这里是我的代码:

<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/

+0

'self.component(“”);'适合我:http://jsfiddle.net/8sku5/。你可以请创建你的jsfiddle重现你的问题? – nemesv

+0

现在添加小提琴 –

回答

22

使用

self.component(null);

,而不是

self.component("");

工作jsfiddle

其他值只有在源列表(这里是self.components)时才被允许,否则值绑定立即被重置。

9

根据你使用的knockoutjs的版本,将改变这个问题的答案。

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

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

如果你要改变这个版本到最新版本2.3.0 然后可以实际使用的;

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