javascript - 在输入标签中按下逗号后如何在选择标签中显示选项
问题描述
我想在逗号之前的输入文本之后动态显示选项,但它没有在选择标签中显示选项。例如,如果用户键入 hello 然后键入逗号 (,),则逗号之前的值应显示在具有多个属性的 select 标记内的选项上。
这是我的代码:
var skills = document.querySelector('#skills');
var skillhave = document.querySelector('#skill');
var skillshaving = [];
skills.addEventListener('keyup', function(event) {
if (event.keyCode === 188) {
if (this.value.length < 2) {
alert("skill required");
this.value = "";
} else {
var skill = this.value.substring(0, this.value.length - 1);
skillshaving.push(skill);
this.value = "";
reloadskills();
}
}
});
function reloadskills() {
skillhave.innerHTML = "";
for (var i = 0; i < skillshaving.length; i++) {
var opt = document.createElement('option');
opt.value += $ {
skillshaving[i]
};
opt.innerHTML += $ {
skillshaving[i]
};
skillhave.appendChild(opt);
}
}
<input type="text" class="form-control" placeholder="Enter skill" name="skills" id="skills"> <!-- for entering skills via text -->
<select name="" id="skill" multiple></select> <!-- for displaying it in option tag -->
解决方案
opt.value
您在分配&时遇到语法错误opt.innerHTML
。我已经更新了如下代码。
opt.value = skillshaving[i]; // Updated code
opt.innerHTML = skillshaving[i]; // Updated code
检查下面的输出。
var skills = document.querySelector('#skills');
var skillhave = document.querySelector('#skill');
var skillshaving = [];
skills.addEventListener('keyup', function(event) {
if (event.keyCode === 188) {
if (this.value.length < 2) {
alert("skill required");
this.value = "";
} else {
var skill = this.value.substring(0, this.value.length - 1);
skillshaving.push(skill);
this.value = "";
//reloadskills();
addSkills(skill);
}
}
});
//function reloadskills() {
// skillhave.innerHTML = "";
// for (var i = 0; i < skillshaving.length; i++) {
// var opt = document.createElement('option');
// opt.value = skillshaving[i]; // Updated code
// opt.innerHTML = skillshaving[i]; // Updated code
// skillhave.appendChild(opt);
// }
//}
function addSkills(skill) {
var opt = document.createElement('option');
opt.value = skill;
opt.innerHTML = skill;
opt.selected = true;
skillhave.appendChild(opt);
}
<input type="text" class="form-control" placeholder="Enter skill" name="skills" id="skills"> <!--for entering skills via text -->
<select name="" id="skill" multiple></select>
<!--for diplaying it in option tag -->
推荐阅读
- c++ - 如何在 C++ 应用程序中集成 ANTLR 4
- c - [已解决] 同步不同进程的线程以特定顺序生效Linux
- python - 如何在一定时间后使对象在 pygame 中消失?
- sql - 即使删除一个数字,如何在序列号中创建列
- vb.net - 不执行对象的两个事件
- facebook - 调用 facebook 营销 api /insights 端点为沙盒营销帐户返回一个空数组 data []
- python - 如何检查格式日期python
- python - 正则表达式 - 从末尾开始的斜线之间的第二次出现
- python - 您如何处理时间序列分析中的零点?
- visual-studio - 如何在 Visual Studio(2019 或更高版本)中从 .vscode/tasks.json 运行任务