我有一个允许多项选择的 select2 元素。其中一个选项是值为 0 的“无”,选择该选项时应清除所有先前选择的选项。我遇到的问题是在后端更新数据时,显示给用户的选项仍然存在。例如,我选择了苹果,但后来没有选择。 Apples 保持显示状态,但它已从值数组中删除,并且 apples 再次显示为下拉列表中的可用选项。尽管数据的完整性很好,但对用户来说,苹果似乎选择了两次或更多次。 (希望这是有道理的)
如果我从此函数外部触发 props_select
上的更改事件,它会按预期工作并且用户 View 会更新。就好像 Select2 在执行更改功能时不允许更新 View 。
我使用的是 Select2 3.5,我知道它已经过时,但它超出了我的控制范围。要更新到较新的版本,需要安全批准,然后进行数月的回归测试(这很糟糕)。
$('#props_select').change(function(e){
if( typeof e.added != 'undefined' && e.added.id == '0'){
$('#props_select').val([0]).trigger('change');
}
});
<div class="select-filter">
<label for="props_select">Equipment contains:</label>
<select id="props_select" name="props_select" class="form-control
form-control-lg" multiple="multiple">
<cfloop query="myquery">
// build options here
</cfloop>
<option value="0">None</option>
</select>
</div>
最佳答案
关于javascript - 无法清除 select2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57808497/