html - 将选中的复选框值附加到下拉列表中
问题描述
如果“valve_type_array”复选框的选中计数大于零,我想显示“配置”下拉列表。并将选中的复选框值附加到“配置”下拉列表中。我坚持将选中的复选框值附加到下拉列表中。任何帮助将不胜感激。
HTML:
<div id="type">
<input type="checkbox" name="valve_type_array[]" value="Test1"><span>Test1</span><br>
<input type="checkbox" name="valve_type_array[]" value="Test2"><span>Test2</span><br>
<input type="checkbox" name="valve_type_array[]" value="Test3"><span>Test3</span><br>
<input type="checkbox" name="valve_type_array[]" value="Test4"><span>Test4</span>
</div>
<select class="form-control hide" id="config" name="config">
<option value="">Please select</option>
</select>
jQuery:
$(document).ready(function(){
var $checkboxes = $('#type input[type="checkbox"]');
$checkboxes.change(function(){
var countCheckedCheckboxes = $checkboxes.filter(':checked').length;
if(countCheckedCheckboxes > 0){
$("#config").show();
}
});
});
解决方案
您需要option
为每个复选框创建一个元素,然后将其附加到#config
选择中。您可以使用map()
最有效的方式创建选项:
$(document).ready(function() {
let $config = $('#config');
let $checkboxes = $(':checkbox');
$checkboxes.on('change', function() {
$('option.dynamic').remove();
let options = $checkboxes.filter(':checked').map((i, el) => `<option class="dynamic" value="${el.value}">${el.value}</option>`).get();
$config.append(options);
}).trigger('change');
});
label { display: block; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label><input type="checkbox" name="valve_type_array[]" value="Test1"><span>Test1</span></label>
<label><input type="checkbox" name="valve_type_array[]" value="Test2" checked><span>Test2</span></label>
<label><input type="checkbox" name="valve_type_array[]" value="Test3"><span>Test3</span></label>
<label><input type="checkbox" name="valve_type_array[]" value="Test4"><span>Test4</span></label>
<select class="form-control hide" id="config" name="config">
<option value="">Please select</option>
</select>
关于以编程方式打开select
选项列表,不幸的是这是不可能的。
曾经有一种解决方法仅适用于 Chrome,但从 Chrome v53 起不再适用。更多细节在这里。
推荐阅读
- python - 在 Python Beautifulsoup 中使用 itertools 将数据项数据添加到分组中
- java - 与 java.lang.Boolean 兼容的预期返回值
- javascript - 在nodejs中使用ffmpeg上传时,edge和firefox中的sharedarraybuffer错误但在chrome中没有
- python - airflow.exceptions.AirflowException:无法解密 login=login 的加密密码,缺少 FERNET_KEY 配置
- latex - 在这张 Latex 排版论文中,这种字体的名称是什么?
- flutter - 未捕获不支持的操作:套接字构造函数
- http - 在golang中将ioutil.ReadAll转换为json很热
- excel - 创建仅包含整数的列表
- amazon-web-services - 为什么我无法创建附加推理加速器的 ECS 任务定义?
- python - python在转义的JSON字符串中使用变量