2013-08-21 5 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(''); 
関連する問題