javascript - HTML 多选更改 'None selected' 文本

标签 javascript html knockout.js

我有一个带有多选选项的选择列表:

<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>

但我想更改“未选择”文本。可以使用 nonSelectedText 选项在 HTML 代码中或仅在 JavaScript 中执行此操作吗?

最佳答案

您确实应该听取 John Pavek 的建议来阅读选项绑定(bind)。 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);
<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>

关于javascript - HTML 多选更改 'None selected' 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45062237/

相关文章:

javascript - 如何在javascript或jquery中获取工作文件夹的物理路径?

javascript - 无法使用 grunt 命令构建

PHP 登录脚本总是打印 "wrong username or password"

jquery - 根据生成的随机数重复更改颜色

javascript - Knockout.Js 在子项为空/移除时隐藏父项

javascript - 类型错误 : Object of type 'Category' (model) is not JSON serializable

javascript - 在发布表单之前在输入文本框中显示日期?

html - 为什么我的 Angular 应用程序不显示我的 html?

javascript - 多个元素可见和不可见取决于可观察的

javascript - 为什么“保存”按钮需要点击两次才能点击相关功能?