我有一个带有多选选项的选择列表:
<select data-bind="attr:{'id':'multilistS'+Id()},foreach: Hlist" multiple="multiple">
<option data-bind="click:$root.changeShole,value:$data.Id, text:N,attr:{'selected':$data.Sel}">Cheese</option>
</select>
但我想更改'None Selected'文字。可以使用nonSelectedText
选项在HTML代码或JavaScript中执行此操作吗?
答案 0 :(得分:2)
你真的应该采用John Pavek的建议来阅读选项绑定。 Knockout专门为此提供了很好的工具,你的构造不使用它们。
noneselectedtext
似乎是jQuery-UI multiselect widget的一项功能。如果您正在使用它,那么您将需要使用binding handler for it。
以下是您所描述内容的简单示例,其中的消息会根据是否选择了多选中的任何内容而更改。
const vm = {
optionsCaption: ko.pureComputed(function() {
return (vm.selectedOptions().length === 0) ? 'Please select at least one' : 'ok';
}),
selectedOptions: ko.observableArray([]),
Hlist: ko.observableArray([{
Id: 1,
N: 'One'
}, {
Id: 2,
N: 'Two'
}])
};
ko.applyBindings(vm);
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<div data-bind="text: optionsCaption"></div>
<select data-bind="options: Hlist, optionsText: 'N', optionsValue: 'Id', selectedOptions: selectedOptions" multiple="multiple">
</select>
<div data-bind="foreach: selectedOptions">
<div data-bind="text:$data"></div>
</div>
&#13;
答案 1 :(得分:0)
我猜你想要的是最初的字段说&#34;没有选择&#34;。当用户选择某些选项时,文本会发生变化。那是对的吗?如果是,这可能有效:
<option disabled selected> value>None Selected</option>