因此,我有这段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);
});
});
这段代码可以运行,但我遇到了问题,并且找不到解决方法。请使用这个 jsFiddle 进行以下测试:
- 保留SELECT的默认值
--SELECCIONAR--并在左侧打勾,这样将起作用并从主SELECT中删除选项MRW,如果取消打勾,则该值将再次出现在SELECT中 - 在SELECT中选择
MRW(第一个选项)并在左侧打勾,这将从主SELECT中删除选项MRW,但会将选项保留为被选中状态,这是错误的,因为服务器端不需要它。
那么,如何即使在SELECT元素中已选择该选项也将其删除?有什么帮助吗?