动态启用/禁用选择标记
Dynamically enable/disable select tag
当send-to-select标记的值不是使用knockoutjs的"global"时,我正在尝试启用department select标记。但由于某些原因,department select标记被固定在初始启用/禁用状态。动态启用/禁用适用于其他元素,例如文本区域
选择确定另一个的启用/禁用状态
<select data-bind="options: recipientSelector, optionsText: 'name',value: selectedRecipient">
需要禁用/启用的选择标签
<select data-bind="options: department_name"></select>
Javascrpt ViewModel
var SendMessageModel = function() {
var self = this;
this.to = ko.observableArray();
this.to_all = ko.observable();
this.title = ko.observable();
this.message = ko.observable();
this.recipientSelector = [
{ recipient: "global", name: "To All" },
{ recipient: "custom", name: "Custom" }
];
this.selectedRecipient = ko.observable();
this.department_name = ['CSE', 'ECE', 'EE'];
self.disableSelects = ko.pureComputed(function () {
return self.selectedRecipient().recipient == "global";
});
};
ko.applyBindings(new SendMessageModel());
屏幕截图"自定义"选项启用"部门"选择元素
您可以将enable
绑定与您的selectedRecipient
observable结合使用,如下所示:
var SendMessageModel = function() {
var self = this;
this.to = ko.observableArray();
this.to_all = ko.observable();
this.title = ko.observable();
this.message = ko.observable();
this.recipientSelector = [
{ recipient: "global", name: "To All" },
{ recipient: "custom", name: "Custom" }
];
this.selectedRecipient = ko.observable();
this.department_name = ['CSE', 'ECE', 'EE'];
self.disableSelects = ko.pureComputed(function () {
return self.selectedRecipient().recipient == "global";
});
};
ko.applyBindings(new SendMessageModel());
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<select data-bind="
options: recipientSelector,
optionsText: 'name',
value: selectedRecipient"></select>
<select data-bind="
options: department_name,
enable: selectedRecipient().recipient === 'custom'"></select>
您也可以使用visible
绑定。这可能仍然有点令人困惑,因为第二个select
仍然有点显示默认选择。
您可以将enable
与视图模型中已计算的一起使用
<select data-bind="options: department_name, enable: disableSelects"></select>
参见演示
这将向选择标记添加一个禁用的属性。它的视觉效果将取决于您的UI样式/框架。
相关文章:
- jQuery根据用户选择启用/禁用asp.net控件
- 选择框已禁用或由其他选择框的某个选项启用
- 禁用/启用基于单选/选择选项所选Javascript的文本框
- 单选按钮的验证(启用)&使用Jquery Optimization从复选框中选择submit按钮
- 根据输入框上的写入动态启用/禁用选择选项
- 如何强制用户从下拉列表和按钮中选择一个值以启用保存按钮
- 内联JavaScript启用/禁用点击单选按钮上的选择和文本框
- 禁用基于下拉列表选择 asp.net JavaScript 启用文本框
- 需要在选择单选按钮上启用提交按钮
- 重新启用文本选择(Opera、webkit等)
- 如何启用由日期选择器 ui 附加的输入?(JQuery 插件)
- 选择2个选择标签后启用按钮
- Javascript(jQuery)/HTML:设置<输入>或者<选择>启用,不工作
- 如何启用禁用的选择选项
- 如何使用tinymce在选择更改时启用/禁用自定义按钮
- 根据选择选项启用/禁用其他输入
- 如何根据单选按钮的选择启用/禁用表单上的多个提交按钮
- 使用ClientSelectColumn选择启用的行
- HTML选择启用禁用属性
- 基于单选按钮选择启用文本字段