const statusOptions = [ "all", "true", "false" ];
const statusFilter = ko.observable("true");
const optionsData = [
{id: 0, description: "Highest Bidder at Auction", status: "false"},
{id: 1, description: "Nominate Another Buyer", status:"true"},
{id: 2, description: "Book to Selling Agent", status:"true"}
];
const setOptionDisable = function(option, item) {
ko.applyBindingsToNode(option, {
disable: ko.pureComputed(
() => statusFilter() !== "all" && item.status !== statusFilter()
)
}, item);
};
ko.applyBindings({
statusOptions, statusFilter, optionsData, setOptionDisable
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<div>
Show :<select data-bind="options: statusOptions, value: statusFilter">
</select>
</div>
<select size=3 data-bind="
options: optionsData,
optionsText: 'description',
optionsAfterRender: setOptionDisable">
</select>