javascript - 如何从应用了 Select2 的选择元素中删除选项?

标签 javascript jquery jquery-select2

所以,我有这个 HTML 代码:

<input type="checkbox" id="orders_lives_in_ccs" name="orders[lives_in_ccs]" class="lives_in_ccs">
<select id="orders_shipping_from" name="orders[shipping_from]" required="required" class="shipping_from toSelect2">
    <option value="" selected="selected">-- SELECCIONAR --</option>
    <option value="MRW">MRW - COBRO EN DESTINO</option>
    <option value="DOMESA">DOMESA - COBRO EN DESTINO</option>
    <option value="ZOOM">GRUPO ZOOM - COBRO EN DESTINO</option>
</select>

当选中复选框 .lives_in_ccs 时,我需要删除选项 MRW,所以我制作了这段代码:

$(function () {
    $('.toSelect2').select2();

    var detachedMember;
    $('.lives_in_ccs').click(function () {
        if (this.checked) {
            detachedMember = $('.shipping_from option[value="MRW"]').detach();
        } else {
            $('.shipping_from option[value=""]').after(detachedMember);
        }

        $(".secure_shipping").toggle(this.checked);
    });
});

此代码有效,但我遇到了问题并且没有找到修复它的方法。有this jsFiddle 做这个测试:

  • 保留 SELECT 的默认值,即 --SELECCIONAR-- 并在左侧标记检查,这将起作用并将从中删除选项 MRW主 SELECT,如果您取消勾选,该值将再次出现在 SELECT 上
  • 在 SELECT 上选择 MRW(第一个选择)并在左侧打勾,这将从主 SELECT 中删除选项 MRW,但会保留作为 SELECTED 的选项是错误的,因为服务器端不期望它。

那么,即使在 SELECT 元素上选择了该选项,我该如何删除该选项?有帮助吗?

最佳答案

这是用于测试的更新 fiddle :http://jsfiddle.net/fgaqgpd7/2/

这将重置 select2 输入的值:

$('.toSelect2').select2('val','');

您可以在单击事件处理程序时应用它。基本上,如果选择了 MRW,则重置 select2 值。

$(function () {
    $('.toSelect2').select2();
    var detachedMember;
    $('.lives_in_ccs').click(function () {
        if (this.checked) {
            if ($('.toSelect2').select2('val') == 'MRW') {
                $('.toSelect2').select2('val','');
            }
            detachedMember = $('.shipping_from option[value="MRW"]').detach();
        } else {
            $('.shipping_from option[value=""]').after(detachedMember);
        }

        $(".secure_shipping").toggle(this.checked);
    });
});

关于javascript - 如何从应用了 Select2 的选择元素中删除选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26347088/

相关文章:

javascript - Mendeley API - 如何使用 JavaScript SDK - 隐式流认证

javascript - RadGrid-使用 javascript 获取下拉列表索引

javascript - DOJO 是否有类似于 .ajaxComplete() 的方法来监听多个 AJAX 调用何时完成或成功?

javascript - 自定义属性选择 2 的触发器更改

javascript - knockout/选择2 : Triggering select2 to update based on an observable option updating

jquery-select2 - 设置语言不起作用select2

javascript - 如何自动关闭 Bootstrap 4 下拉菜单中的子菜单

javascript - jQuery - $.post 延迟对象数组的协调事件处理程序

javascript - 框内可调整大小的范围输入 slider

jquery - 要添加什么 jquery,以便 <li> 的背景在悬停在子元素(a div)上时保持突出显示