如何在启动选择招标时阻止选择更改事件触发?页面上的添加按钮,将动态添加到DOM。当每个选择框添加到DOM时,更改事件是触发而不是从select?
中选择项目答案 0 :(得分:1)
问题是KnockoutJS试图找到列表框中的哪个元素与requiredItem
可观察对象匹配。一开始没有,这就是为什么它会尝试将其设置为列表框的“标题”。您没有提供一个,因此它将requiredItem
设置为列表框的第一个元素。
您可以做的是为数组添加标题项:
self.requireditems = ko.observableArray([
{ desc: "Select an option from the list...", key: 0, editable: false } // ... and then all other items]);
如果你真的不想更新requiredItem
:
self.selectedItem = ko.observable(self.requiredItems()[0]);
然后,如果您想知道是否从列表中选择了有效元素,您可以添加以下属性:
self.isValidSelectedItem = ko.computed(function() {
return self.selectedItem().id;
});