javascript - 如何禁用用户输入以实现自动完成
问题描述
本质上,我想强制用户只能从给定的值中进行选择。
例如,当用户在文本框内选择或单击时,它应该显示他/她的一些值(例如 Microsoft 和 google),然后他应该能够选择其中一个或键入 a 然后选择 apple 但在在任何情况下,他都应该能够输入或选择不在数据/值中的任何内容。
代码笔: https ://codepen.io/textech/pen/WNvrLMp
document.addEventListener('DOMContentLoaded', function() {
var elems = document.querySelectorAll('.autocomplete');
var instances = M.Autocomplete.init(elems, {
data: {
"Apple": null,
"Microsoft": null,
"Google": 'https://placehold.it/250x250'
},
});
});
解决方案
将 'minLength: 0' 传递到初始化中会在您单击文本字段后立即显示选项:
document.addEventListener('DOMContentLoaded', function() {
var elems = document.querySelectorAll('.autocomplete');
var instances = M.Autocomplete.init(elems, {
data: {
"Apple": null,
"Microsoft": null,
"Google": 'https://placehold.it/250x250'
},
minLength: 0,
});
});
分叉的代码笔:
https://codepen.io/doughballs/pen/XWbXQZY
文档:
https://materializecss.com/autocomplete.html#options
编辑
我已经为自动完成添加了一个侦听器(jQuery,但如果需要,您可以重新工作) - 它连接到实例以检查“计数”,即当前返回的选项数量。如果这是 0 - 即不匹配 - 我们清除自动完成。
我会更新代码笔:D
$('#autocomplete-input').on('keyup',function(){
console.log('keyup')
if ( instances[0].count === 0 ) {
console.log('no matches');
$('#autocomplete-input').val('');
}
})
推荐阅读
- javascript - Javascript隐藏一个div并显示另一个不工作
- python - 无法更改数据类型以通过 stats CDF 函数
- git - 我如何查看 github 分叉是否可能比原始分叉更远?
- bash - 如何检查两个文件夹中的文件是否相同 Bash
- reactjs - 在 React 中修补 AutoComplete
- powerbi - PowerBI DAX 用于供应商数量和年度支出
- linux - 为什么 vm_area_struct 有 start_code、end_code 字段?
- python - pandas group by with isin 语句返回索引 true/false
- python - KeyError: 20,不确定是什么问题
- python - 如何使用 Boto 将文件上传到 S3 存储桶上的确切位置