javascript - 是否可以更改语义-ui-dropdown 上的“添加”文本?
问题描述
我想知道这是否可能,如果可以,我应该更改什么设置?
键入未在下拉列表中列出的值时会出现添加
$(document).ready(function () {
$('.ui.dropdown')
.dropdown({
clearable: true,
allowAdditions: true,
hideAdditions: false,
onAdd: function (addedValue, addedText, $addedChoice) {
console.log('teste');
},
onChange: function (value, text, $choice) {
$('.ui.dropdown').dropdown('clear');
}
});
});
<script src="https://code.jquery.com/jquery-3.1.1.min.js" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.css">
<script src="https://cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.js"></script>
<select id="dropdownHospital" name="hospitais" class="ui search selection dropdown"
style="margin:0">
<option hidden selected value="">Hospitais</option>
<option value="1">Hospital São Luis</option>
<option value="2">Hospital Sírio Libanês</option>
<option value="3">Hospital Albert Einstein</option>
<option value="4">Hospital ABC</option>
</select>
解决方案
add
文本是由库硬编码的。因为它是在 DOM 中呈现的。您可以使用一些 jQuery 来操作它。
该解决方案并不完美并且很hacky,但它给出了解决方法的提示。它现在只在第二次击键后删除添加。
<div tabindex="-1" class="menu transition visible" style="display: block !important;">
<div class="addition item selected" data-text="xcx" data-value="xcx">Add <b>xcx</b>
</div>
</div>
这是为添加选项呈现的 HTML。当我们将 keyup 事件附加到下拉列表时,我们可以使用 jQuery 更改添加文本text
。见片段。
$('.ui.dropdown').dropdown({
clearable: true,
allowAdditions: true,
hideAdditions: false,
onAdd: function(addedValue, addedText, $addedChoice) {
console.log('teste');
},
onChange: function(value, text, $choice) {
$('.ui.dropdown').dropdown('clear');
}
});
$('.ui.dropdown').on('keyup', 'input:text', function() {
const element = $(this).parent('.ui.dropdown').find('div.menu.transition.visible > div.addition.item.selected');
element.text(element.attr('data-value'));
});
<script src="https://code.jquery.com/jquery-3.1.1.min.js" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.css">
<script src="https://cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.js"></script>
<select class="ui dropdown search selection ">
<span class="text">add options</span>
<i class="dropdown icon"></i>
</select>
解决方案是用于<span class="text">add options</span>
更改下拉列表的文本。
快速浏览文档会带来很多乐趣: https ://semantic-ui.com/modules/dropdown.html
推荐阅读
- java - 使用一种方法从文本文件中读取数字并返回素数
- c# - MenuItem 中的单击事件
- c++ - 是`boost::function
f`是指针还是对象? - javascript - 删除列 css 网格中的间隙
- angular - 在 firestore 中更新文档会使结果列表变为初始形式
- next.js - 如何在 chakra ui 中自定义盒子大小?
- wordpress - twitterbot/1.0 导致高 CPU 和 Ra
- scala - libraryDependencies Spark in build.sbt 错误(IntelliJ)
- python - 具有多个模块的 Python 扩展
- javascript - 使用 .add() jQuery 方法将 div 添加到元素