2014-07-10 56 views
0

我想用一個下拉菜單替換現有網站中的文本框,其中有幾個選項。一切工作都很好,期望值在註冊時沒有被存儲/註冊。但與文本框它工作正常。請參閱下面的代碼我有下拉提出:實施與淘汰下拉菜單中的問題

</label> 
<label class="label-4 lcol1" for="d_name-suffix"><small>(optional)</small> 
<select id="d_name-suffix" style="width:auto; height:auto" data-bind="options: $root.nameSuffix, value: nameSuffix, optionsText: 'options1'" /> 
</label> 

JS:

self.nameSuffix = ko.observable([ 
{ options1: "Mr" }, 
{ options1: "Mrs" }, 
{ options1: "Miss" } 
]).extend({ pattern: NineElevenRegistries.inputValidation.name }); 

這裏是已爲文本框的實現代碼:

self.nameSuffix = ko.observable().extend({ 
maxLength: NineElevenRegistries.inputValidation.nameSuffixMaxLength, 
pattern: NineElevenRegistries.inputValidation.name 
}); 

回答

1

你需要爲這些值使用數組並將值存儲在可觀察值中。

self.nameSuffixes = ko.observableArray([ 
{ options1: "Mr" }, 
{ options1: "Mrs" }, 
{ options1: "Miss" } 
]); 

self.nameSuffix = ko.observable(); 

並且在視圖 -

<select id="d_name-suffix" style="width:auto; height:auto" data-bind="options: $root.nameSuffixes, value: nameSuffix, optionsText: 'options1'" /> 
0

所以實際上我想出解決這個問題。而不是使先生,太太等作爲對象,我創建字符串使用以下數組:

self.nameSuffixes = ko.observableArray([ "","Mr.","Mrs","Miss"]); 
self.nameSuffix = ko.observable();