我在我的代码中有一个选择下拉列表,如下所示。我想在那里保留一些预选的选项。某些预选选项应为FIXED,以便用户无法更改它们。为了做到这一点,我编写了以下代码:
<select id="select2-multiple" name="users" multiple="multiple" style="width: 50%">
<option value="4">Admin</option>
<option value="5">Manager</option>
<option disabled="disabled" selected value="6">User</option>
<option selected value="7">ReadOnly User</option>
<option disabled="disabled" selected value="8">Assistant Manager</option>
</select>
<script>
$(document).ready(function () {
$('#select2-multiple').select2();
});
</script>
显示的预选选项没有问题。但是带有disabled="disabled"
的仍然可以从列表中删除。如何防止删除这些选项?
我找到了。我需要使用select2的locked
功能。因此,我要做的就是将问题中的代码更改为此:
<select
id="select2-multiple"
name="users"
multiple="multiple"
style="width: 50%"
>
<option value = "4">Admin</option>
<option value = "5">Manager</option>
<option locked="locked" selected value = "6">User</option>
<option selected value = "7">ReadOnly User</option>
<option locked="locked" selected value = "8">Assistant Manager</option>
</select>
<script>
$(document).ready(function() {
$('#select2-multiple').select2();
});
</script>
因此基本上使用locked
而不是禁用。但是,我最初使用的是select2版本3.2,并且在那里无法正常工作。我必须升级到3.5.4才能使用此功能。
可以在这里找到文档:
http://select2.github.io/select2/#locked-selections
我发现这个SOF线程也很有帮助: