如何限制选择列表 - 在 KnockoutJS 中只选择一项

Posted

技术标签:

【中文标题】如何限制选择列表 - 在 KnockoutJS 中只选择一项【英文标题】:How to limit select list - to select only one item in KnockoutJS 【发布时间】:2019-01-18 17:53:34 【问题描述】:

如何限制选择列表只选择一项? 可以通过css来实现吗?

<select multiple data-bind="options: Items,             
                   optionsText: 'Title',
                   value: selectedItems, optionsValue: 'Id',
                   attr:  name: 'item' "></select>


<div data-bind="text: selectedItems"></div>



function ViewModel() 
    var self = this;  
    var    selection = [];
    self.selectedItems = ko.observableArray();
    self.Items = ko.observableArray(["Id": "0",  "Title": "Item1", 
     "Id": "1", "Title": "Item2",  "Id": "2", "Title": "Item3"]);    


ko.applyBindings(new ViewModel());

http://jsfiddle.net/s95wezu2/1/

【问题讨论】:

你能用一句话解释multiple属性的作用吗? 这与 CSS 或 Knockout 无关。只知道多重属性的作用w3schools.com/tags/tag_select.asp 【参考方案1】:

我不确定您的要求。您可以使用size 属性代替multiple。这将限制用户选择多个选项,但会显示所有选项。

function ViewModel() 
    var self = this;  
    var    selection = [];
    self.selectedItems = ko.observableArray();
    self.Items = ko.observableArray(["Id": "0",  "Title": "Item1", 
     "Id": "1", "Title": "Item2",  "Id": "2", "Title": "Item3"]);    


ko.applyBindings(new ViewModel());
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<select size = 3 data-bind="options: Items,             
                   optionsText: 'Title',
                   value: selectedItems, optionsValue: 'Id',
                   attr:  name: 'item' "></select>


<div data-bind="text: selectedItems"></div>

你不需要 CSS。

【讨论】:

以上是关于如何限制选择列表 - 在 KnockoutJS 中只选择一项的主要内容,如果未能解决你的问题,请参考以下文章

当选择当前行时,KnockoutJS选中了单选按钮

当一个或多个项目被取消选择时,knockoutjs 取消选择/选择所有复选框

使用KnockoutJS中的选项绑定为下拉列表中的某些选项添加类

KnockoutJS observable 未在屏幕上更新

使用 KnockoutJs 遍历嵌套的 Django REST Framework API

使用knockoutjs在文本框“keydown”之后过滤的显示列表