php - 将值附加到多选时,jquery重复项目
问题描述
当我将值附加到多选时遇到问题,我正在处理 laravel 和 modal,因此我将能够在同一页面中添加和编辑,对于创建或添加,有 foreach 可以获取多选中的所有值,在编辑项目,我使用 jquery 附加选定的数据,但在这一点上它选择了值,但如果我想选择更多,同时显示值,所以我有重复的项目
刀:
<select class="form-control select2" id="permission" name="permission[]" multiple="multiple">
@foreach($permissions as $key => $value)
<option value="{{$key}}">{{$value}}</option>
@endforeach
</select>
jQuery:
$(response.permissions).each(function (i,value) {
$("#permission").append("<option value='"+value['id']+"' selected>"+value['name']+"</option>");
});
解决方案
是因为您正在循环访问权限并使用附加,要解决它,如果您使用每个方法循环选项,您只需更改所选道具,如下所示:
$(response.permissions).each(function (i,value) {
$(this).prop('selected', true);
});
如果要循环选定的标签,则需要在选择器中进行一些修改:
$(response.permissions).each(function (i,value) {
$(`#permission option[value='${value}']`).prop('selected', true);
});
在这里查看另一个示例,如果您使用的是 select2,您只需要添加 tags=true 即可在您的标签框中创建 crud
$(document).ready(function() {
$('#permission').select2({
tags: true});
});
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
</head>
<body>
<div style="width: 100%">
<select class="form-control select2" id="permission" name="permission[]" multiple="multiple">
<option value="1">Hello Country</option>
<option value="2">Hello World</option>
<option value="3">Hello Stack Overflow</option>
</select>
</div>
</body>
</html>
推荐阅读
- node.js - chrome 在 Linux 机器中的位置是什么?
- mysql - 从一个父记录的子表中获取所有数据集的最佳方法
- twig - 在扩展模板中扩展模板
- python - scikit-learn DecisitonTreeClassifier 中的阈值和特征(对于每个训练的节点)有什么区别?
- javascript - Joi 验证:有没有办法一次性允许多个模式对象的未知键
- excel - 通过大型数据集上的另一列数据过滤 excel 表列
- api - 我在flutter中使用http包时遇到这个问题{参数类型'String'不能分配给参数类型'Uri'}
- ibm-cloud - 如何为 Watson Machine Learning API 创建凭证以保存 ML 模型
- amazon-web-services - 标记 IVS AWS 时 ecdsa 的验证错误
- python - 游戏结束在 pygame 中无法正常工作