你可以使用select元素的selectedIndex
屬性來找出當前選定的選項。
如果你想要把這個綁定處理程序,你可以是這樣的:
ko.bindingHandlers.selectedIndex = {
init: function(element, valueAccessor) {
ko.utils.registerEventHandler(element, "change", function() {
var value = valueAccessor();
if (ko.isWriteableObservable(value)) {
value(element.selectedIndex);
}
});
}
};
這是假設你是結合其對可觀察到的(如果你要綁定對非可觀察到的,然後它需要多一點的代碼),你可以使用它像:
<select id="lstEntreprisesCbx" data-bind="options:Entreprises,
optionsText: 'NomEntreprise',
optionsCaption: '-- Nouvelle Entreprise --',
selectedIndex: myIndex">
</select>
這裏有一個例子:http://jsfiddle.net/rniemeyer/K6SZQ/
更新
我已經讀過這個問題,因爲它特別想要selectedIndex
當前選定的值,這可能是錯誤的。如果您確實想獲取當前所選對象的id
之類的內容,則可以使用value
綁定以及optionsValue
選項。它看起來像:
因此,您所指定的value
更新約束,而在optionsValue
結合使用(字符串)屬性,該屬性值。如果您省略了optionsValue
,那麼它將用整個對象填充您的value
。如果你的選擇數組只是原始值,這也是你會用到的。
樣品:http://jsfiddle.net/rniemeyer/3LyLs/
非常感謝您的幫助=)。 – Vileps 2013-04-21 22:05:52
爲什麼不使用'value'綁定?我在這裏錯過了什麼嗎? – 2013-04-22 14:44:00
我想我以爲他特別想要項目的'selectedIndex'。重新閱讀這個問題,也許這不一定是真的。將更新響應。 – 2013-04-22 15:03:00