挖空.js:清除选择元素中的选择
Knockout.js: clear selection in select element
我需要从<select>
元素中清除选择。我已经阅读了诸如 Knockoutjs 清除组合框中的选定值之类的帖子,并尝试了公认的答案,但这些解决方案似乎不起作用(不知道自从答案被接受以来,Knockout 2 中是否有某些变化?
下面是一个示例视图模型:
var ClearSelectionViewModel = function () {
var self = this;
self.station = ko.observable();
self.selectedStation = ko.observable();
self.selectedStation.subscribe(function (value) {
self.station(value);
});
self.stations = ko.observableArray(['CLT', 'PHL', 'PHX', 'PIT']);
self.clearSelectedStation = function () {
self.selectedStation(null);
};
};
ko.applyBindings(new ClearSelectionViewModel());
调用clearSelectedStation
时,绑定视图模型属性应设置为 null
,这应该反映在 UI 中,绑定的 <select>
元素显示为空白并展开选项列表,不显示任何突出显示的项目。但是,我注意到的是,如果您尝试将绑定值属性(selectedStation
)设置为选项数组(stations
)中不中的任何内容,则绑定似乎被忽略了。
这把小提琴说明了我在说什么:http://jsfiddle.net/sellmeadog/Su8Zq/1/
如果没有必要,我不想用空白值"污染"选项数组。我想知道如何让链接帖子中的解决方案发挥作用。
一种选择是对"未选择"值使用optionsCaption
附加绑定。 必须将其设置为某些内容才能使用,但您可以将其设置为 " "
.
<select data-bind="optionsCaption: ' ', options: stations, value: selectedStation"></select>
示例:http://jsfiddle.net/rniemeyer/Su8Zq/3/
只需添加一个"选项标题",如下所示:
<select data-bind="options: stations, value: selectedStation, optionsCaption: '-- SELECT --'"></select>
更新的小提琴:http://jsfiddle.net/Su8Zq/2/
相关文章:
- WebdriverIO waitForExist()选择元素's选定的选项
- 如何选择元素的第n个子元素
- Angular没有根据模型更新我的选择元素
- jquery使用name from变量按类选择元素
- 如何使用jQuery按数据日期属性选择元素
- 向html选择元素添加选项
- 使用Jquery在相同类型的元素中选择元素
- 他们是如何使用angular/jqLite find()方法按属性名称和值选择元素的?ng conf 2015
- 如何在Angular中清除选择元素中的过滤器
- 使用其中一个元素作为参考点,从Javascript数组中选择元素
- Javascript选择元素到字符串的比较
- Angular始终选择选择元素中的第一个选项
- 使用 jquery .find() 遍历按类和存储属性选择元素
- 通过 id json, jquery 选择元素
- 如何基于另一个已经存在的选择器选择元素
- 禁用多个选择元素中的非“选定”选项,但使用 jquery 的一个除外
- HTML 选择元素的只读等效项
- 在iPad上,如何通过Javascript事件在选择元素上设置focus()而不显示选项
- 单击事件似乎不适用于 IE 中的选择元素
- Angular js,在选择元素上,我想 POST 数据以将其保存在数据库中,然后我想使用 PUT 更新它而无需重新加载