我想在淘汰赛的组合框中获取所选索引的ID是否可能?
<select id="lstEntreprisesCbx" data-bind="options:Entreprises,
optionsText: 'NomEntreprise',
optionsCaption: '-- Nouvelle Entreprise --'">
</select>
由于
答案 0 :(得分:3)
您可以使用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);
}
});
}
};
这假定您将它绑定到一个observable(如果你想绑定一个不可观察的,那么它需要更多的代码),你会像以下一样使用它:
<select id="lstEntreprisesCbx" data-bind="options:Entreprises,
optionsText: 'NomEntreprise',
optionsCaption: '-- Nouvelle Entreprise --',
selectedIndex: myIndex">
</select>
以下是一个示例:http://jsfiddle.net/rniemeyer/K6SZQ/
我已经阅读了这个问题,特别想要当前所选值的selectedIndex
,这可能是错误的。如果您确实希望获得当前所选对象的id
之类的内容,则可以使用value
绑定以及optionsValue
选项。它看起来像是:
<select id="lstEntreprisesCbx" data-bind="options:Entreprises,
optionsText: 'NomEntreprise',
optionsCaption: '-- Nouvelle Entreprise --',
value: selectedId,
optionsValue: 'id'">
</select>
因此,您指定要在value
绑定中更新哪个值以及在optionsValue
绑定中使用哪个属性(作为字符串)。如果省略optionsValue
,则会使用整个对象填充value
。如果您的选项数组只是原始值,那么这也是您将使用的。