javascript - 将带有多项选择的选项附加到简单选择中
问题描述
我正在使用多项选择来填充一个简单的选择。我正在尝试如果我选择一个值并且它不存在附加到简单选择,如果存在则不做任何事情,但如果我取消选择选项,请将其从简单选择中删除。我怎么能那样做?
$(function() {
$(document).on('change', '#foo', function() {
var values = $(this).val();
values.forEach(function(val) {
$('#bar option').each(function() {
var v = $(this).val();
if (values.indexOf(v) === -1) {
$('#bar').append('<option value="' + val + '">' + val + '</option>');
return false;
}
});
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select multiple id="foo">
<option value="value1">value1</option>
<option value="value2">value2</option>
</select>
<select id="bar">
<option selected disabled>Add some from multiple</option>
</select>
解决方案
删除除 after 更改的选项之外的所有选项disabled
并#bar
创建#foo
新选项和appendTo()
#bar
.
$(function() {
$(document).on('change', '#foo', function() {
var values = $(this).val() || []; // in case you don't select anything
$('#bar option:not(:disabled)').remove()
values.forEach(function(val) {
$('<option>', {
value: val,
text: val
}).appendTo('#bar')
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select multiple id="foo">
<option value="value1">value1</option>
<option value="value2">value2</option>
</select>
<select id="bar">
<option selected disabled>Add some from multiple</option>
</select>
推荐阅读
- c - 如何使用 Ethernet Shield 将数据从 Arduino Uno 发送到 MySQL 数据库
- laravel - Laravel 刀片:第一次加载页面时获取未定义的变量,刷新时它工作正常
- django - 通过传递字段名称而不是主 ID 获取模型实例
- php - 如何用 PHP 替换 SQL Server 显示的输出
- presto - Presto:如何填补空白并从前几行复制值
- react-native - React Native Expo 锁定屏幕方向但仍检测方向变化
- java - 如何将 postgresSql 查询重写为 Spring-data jpa 查询
- reactjs - 创建自定义钩子时反应 TypeError
- android - 使用 startActivityForResult() 时,我们是否还必须在后台保存资源清理的先前活动状态?
- python - 我是否需要刷新 sqlalchemy 连接对象才能将数据插入到新创建的表中?