Javascript 对多个选择框上的选定选项使用一个选项列表进行淘汰
有问题的确切证明,即: 我在同一页上有多个选择框。选择框的所有选项均采用给定形式:Javascript 对多个选择框上的选定选项使用一个选项列表进行淘汰,javascript,knockout.js,knockout-2.0,Javascript,Knockout.js,Knockout 2.0,有问题的确切证明,即: 我在同一页上有多个选择框。选择框的所有选项均采用给定形式: <option value="#id_num">StringVal</option> 选择框如下所示 <select name="first" data-bind="selectedOptions: idlist"> ... <option value="2">Blah</option> <option value="3"
<option value="#id_num">StringVal</option>
选择框如下所示
<select name="first" data-bind="selectedOptions: idlist">
...
<option value="2">Blah</option>
<option value="3">Blah</option>
...
</select>
<select name="second" data-bind="selectedOptions: idlist">
...
<option value="1">Blah</option>
...
</select>
<select name="third" data-bind="selectedOptions: idlist">
...
<option value="4">Blah</option>
...
</select>
...
废话
废话
...
...
废话
...
...
废话
...
我的问题是:当我从selectbox中选择一个选项时,其他selectbox将返回其初始状态。这与selectedOptions直接相关,因为如果删除selectedOptions指令,则不会发生此问题
任何建议都将受到欢迎
谢谢 绑定用于启用多选的单个
标记。它将保持选项框中每个项目的数组处于选中状态
您之所以看到自己的行为,是因为当您从其中一个下拉列表中选择单个值时,selectedOptions绑定会立即启动。逻辑是这样的:
开火时的更新
中提取值并更新底层可观察数组
标记集中不存在任何值,因此会清除该值这就是为什么你会看到这种行为。如果要从所有选定选项中收集组合,则需要编写新的自定义绑定,或为要绑定到的每个
创建单独的数组。Josh,感谢您的详细解释。我以为selectedOptions是一个只读列表,用于向SelectBox提供初始数据,但没想到它会在选择后更新。@hinoglu-没问题,伙计。在所有绑定中,我认为options/selectedOptions绑定可能是最棘手的。老实说,我最好的建议是浏览一些在线信息并编写自己的自定义绑定(一个简单的绑定)。它将在帮助解开绑定在击倒中如何工作的神秘性方面创造奇迹。
<select name="first" data-bind="selectedOptions: idlist">
...
<option value="2">Blah</option>
<option value="3">Blah</option>
...
</select>
<select name="second" data-bind="selectedOptions: idlist">
...
<option value="1">Blah</option>
...
</select>
<select name="third" data-bind="selectedOptions: idlist">
...
<option value="4">Blah</option>
...
</select>