javascript - 无法清除 select2

标签 javascript jquery jquery-select2

我有一个允许多项选择的 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>

最佳答案

我认为您正在使用新的 Select2 文档。应该是:

$(this).select2("val", []);

演示:https://jsfiddle.net/zbwh7qdr/1/

关于javascript - 无法清除 select2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57808497/

相关文章:

javascript - 可以在回调中设置 javascript 函数参数的值吗?

javascript - 在 select2 插件中调用 ajax 时引入延迟

javascript - 禁用所选选项后 select2 未更新

javascript - jquery:父模式对话框文本框不可编辑

javascript - JSQueryUI 可从一个 ul 排序到另一个 ul

javascript - ReactJS - ReactMount : Root element has been removed from its original container. 新容器

javascript - JQuery 回调到先前定义的函数

javascript - 在包含另一个函数的函数上返回 false

javascript - 如何延迟 select-2,以便在用户输入数据后等待一段时间

javascript - 与rails3-jquery-autocomplete : don't know how to bind railsAutocomplete. select作斗争