防止具有相同选项的两个复选框上的重复选项
Prevent duplicate option on two checkboxes with same options
我有 2 个选择框,我试图避免这些选择框中的值(选项(重复。它们都以相同的选项列表开始,但在selectA
中选择选项后,此选项不会在selectB
中看到,反之亦然。如果您选择selectA-selectB-selectA
,它应该可以工作...等。每次其中一个选择框都应该带有 n-1 个选项。
我做了下一个..它有效,但在移动设备中.hide()
它不起作用!
$('#selectA').bind('change', function () {
$("#selectB option").show();
$("#selectB option[value='" + $(this + 'option:selected').attr('value') + "']").hide();
});
$('#selectB').bind('change', function () {
$("#selectA option").show();
alert($(this).find('option:selected').attr('value'));
$("#selectA option[value='" + $(this).find('option:selected').attr('value') + "']").hide();
});
}
尝试类:.hide()
.hide {display: none;}
$('#selectA').bind('change', function () {
$("#selectB option").removeClass('hide');
$("#selectB option[value='" + $(this + 'option:selected').attr('value') + "']").addClass('hide');
});
$('#selectB').bind('change', function () {
$("#selectA option").removeClass('hide');
$("#selectA option[value='" + $(this).find('option:selected').attr('value') + "']").addClass('hide');
});
}
也不行。
试过这个:
$('#selectA').on('change', function() {
$('option:not(:selected)', this).clone().appendTo($('#selectB').empty());
});
$('#selectB').on('change', function() {
$('option:not(:selected)', this).clone().appendTo($('#selectA').empty());
});
但这里的问题是,如果我们从 5 个选项开始,例如,在selectA
中选择选项后,我将在 selectB
中得到 n-1,在选择选项后 selectB
我会在selectA
得到 n-2 等等......最后你会得到空列表。
有什么想法如何解决吗?
试试这个: 小提琴
$(document).ready(function() {
$('#selectA').on('change', function() { UpdateDropdown($(this), $('#selectB')); })
$('#selectB').on('change', function() { UpdateDropdown($(this), $('#selectA')); })
function UpdateDropdown($source, $target) {
var $sourceitems = $('option:not(:selected)', $source).clone();
var sourcevalues = $.map($sourceitems, function(option) { return option.value; });
var $targetitem = $target.find(':selected');
if ($.inArray($targetitem.val(), sourcevalues) == -1) {
$sourceitems = $.merge($sourceitems, $targetitem);
}
$sourceitems.appendTo($target.empty());
}
});
如果保持排序顺序很重要,请摆弄排序
相关文章:
- 我可以在Dynamics CRM 2016的复合地址字段中添加两个选项字段吗
- 在两个多选字段之间移动选项
- 在两个浏览器选项卡之间共享变量范围
- 仅在使用javascript和html的浏览器中在相同的两个选项卡之间切换
- 一个文本框,其中两个选项的值不同
- 如何使用jquery将两个字段组合为下拉菜单中的选项
- 两个不同部分的选项卡索引
- 如何减去选项两个相关的选择 HTML
- 高图表:设置两个不同系列图表的选项
- 两个选项卡—第一个选项卡在第二个选项卡中处于调试模式时被卡住
- 创建选项卡,每个选项卡有两个文本区域
- 从jquery中的select选项添加两个不同的数组值(text&value)
- 若在两个不同的选项卡中打开同一个页面,如何防止javascript运行两次
- 我有下面垂直菜单的jquery代码,当我悬停在apparels选项卡上时,我有两个选项卡作为apparels和化妆品
- 如何在HTML中用两个预定义的值绑定选择选项,以在mongodb中插入数据
- 我在angular JS中选择了一个默认选项,并删除了两个单词之间的下划线
- 如何在两个不同的选项卡(jQuery数据表)上同步处理可排序表
- 防止具有相同选项的两个复选框上的重复选项
- CRM 2011+问题与javascript中的两个选项集
- jquery克隆与HTML下拉选项两个下拉选择相同的值一个警报应该选择不同的值