javascript - 在列表中显示所选项目
问题描述
如何在列表中显示选定的项目?
这样选择器中选择的元素就会显示在它下面的列表中。
示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<div class="md-form">
<select name="users" multiple="multiple"
required>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</div>
</body>
</html>
结果应该是什么:
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<select name="users" multiple="multiple"
required>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
Selected items:
<ul>
<li>1</li>
<li>3</li>
</ul>
</body>
</html>
解决方案
您需要检查您选择的是否存在并创建它。
if( document.getElementById("mySelect") != undefined) {
document.getElementById("mySelect").remove();
}
var selectList = document.createElement("select");
并且您可以创建在事件句柄中map
选择的选项change
function change (options) {
var parent = document.getElementsByClassName("md-form")[0];
if( document.getElementById("mySelect") != undefined) document.getElementById("mySelect").remove();
var selectList = document.createElement("select");
let selected = [...options].filter(o => o.selected).map(o => {
selectList.id = "mySelect";
selectList.multiple = "multiple";
parent.appendChild(selectList);
var option = document.createElement("option");
option.value = o.value;
option.text = o.text;
selectList.appendChild(option);
});
}
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<div class="md-form">
<select name="users" multiple="multiple"
required onchange="change(this.options);">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</div>
</body>
</html>
推荐阅读
- express - 将新版本部署到 AWS 弹性 beantalk 时删除的静态文件
- haskell - Haskell:根据列表中所有其他元素的谓词过滤列表
- python-3.x - 如何编写更好的 Python 代码:用什么替换多个 elif?
- javascript - Javascript - 调用外部函数作为对象的属性
- python - 使用 Pycharm 时无法正确加载 CSS、HTML 和 Javascript 文件
- r - 如何解决聚合 SD 函数中的错误消息?
- php - php 在 href 链接中的 echo 'n' 空间
- java - 将字符串 "[ "a", "b", "c" ]" 解析为 Java 中的字符串列表
- java - url 图片下载总是返回 null android
- php - 获取键值在另一个数组中的多维数组的值