javascript - 语义 UI 多选下拉菜单阻止元素选择
问题描述
我有一个包含 4 个元素的下拉列表,例如
'All', 'Fi', 'Cu', 'Common'.
'All'
在这里,只有当其中没有元素时才允许用户选择。如果其中至少有一个元素'Cu'
,并且如果用户正在选择'All'
,则必须阻止选择'All'
并将其从下拉列表中删除。
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/semantic.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/semantic.min.css"></script>
<div style="padding:10px;width:200px;">
<select id="du_select" class="ui fluid dropdown" name="du_graph_types" multiple="">
<option value="">Select DU</option>
<option value="all">All</option>
<option value="copper">Copper</option>
<option value="fiber">Fiber</option>
<option value="common">Common</option>
</select>
</div>
<script type="text/javascript">
$('#du_select').dropdown({
onChange: function(value, text, $selectedItem) {
// custom action
if (value.length > 1 && value.includes('all')) {
const index = value.indexOf('all');
if (index > -1) {
value.splice(index, 1);
}
console.log('sel_items : ' + value)
$('#du_select').dropdown('clear').dropdown('set selected',value)
alert('Before selecting "All", clear the existing DU type')
}
}
});
</script>
但是,在这样做的同时,元素将从下拉列表本身中删除。
我在这里犯了什么错误?
解决方案
使用$('#input1 option').length; 获取列表中的选项数;然后根据您的逻辑应用您的条件。在那里,您将获得 5 的给定代码。让我知道更多细节
推荐阅读
- android - 无法在 onCreateView 中使用查询中的对象
- symfony - 如何在 Symfony 中定义默认/其他路由?
- python - Python:在一个语句中打印列表中的所有项目
- ios - 如何在连接多个网站的应用程序中集成 iOS 12 Autofill(以浏览器为例)?
- typescript - 为什么不使用联合两侧的密钥导致 TS 抱怨?
- google-apps-script - Google 表格中的 Google 表单下拉列表
- c# - 无限循环中的内存使用情况
- ruby-on-rails - 尝试在 Vagrant 中将 sql server 与 RoR 应用程序连接时出错
- python - 在 Python 中使用 CBC 初始化向量显示(二进制)
- algorithm - 哪种算法可以求解变量为位且运算为异或的方程组?