У меня есть этот код здесь
orderTotal = ko.computed(function () {
return parseFloat($("#PurchaseDomainSuffix option:selected").text().match(/[0-9]+(?:\.[0-9]*)?/g)) || 0;
}
который берет числовое значение из строки при загрузке страницы. (загружается из раскрывающегося списка) Но когда список изменяется, я не могу понять, как обновить значение orderTotal.
Я новичок в нокауте. Я искал функцию записи для ko.computed. Не уверен, что смотрю в правильном направлении. Как мне перезаписать значение из загрузки страницы новым значением после изменения раскрывающегося списка.

В Knockout есть классная поддержка выпадающих списков.
Вы можете использовать привязку options для создания списка и параметр значения, чтобы сделать правильный выбор. Вот небольшой пример.
function ViewModel() {
var self = this;
self.list = [{
name: "Breakfast",
time: 'Morning'
},
{
name: "Lunch",
time: 'Noon'
},
{
name: "Dinner",
time: 'Evening'
}
];
self.selectedItem = ko.observable();
self.selectedComputed = ko.computed(function() {
var selectedItem = self.selectedItem();
return "I'll eat at " + selectedItem;
});
}
ko.applyBindings(new ViewModel());<script src = "https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<select data-bind = "options: list, value: selectedItem, optionsText: 'name', optionsValue: 'time'"></select>
<br>
<span data-bind = "text: selectedItem"></span>
<br>
<span data-bind = "text: selectedComputed"></span>Вы можете использовать observableArray для хранения списка. Я просто использовал это как пример.
Закончил изменение вычисляемого на наблюдаемое и просто запустил .orderTotal (значение) для его обновления.
В этом есть большой смысл. Но значения в раскрывающемся списке заполняются путем извлечения базы данных перед загрузкой страницы. Которые время от времени меняются. Так что жесткое кодирование их в списке не вариант.