jquery:没有重复选择许多下拉菜单的相同值



在提交表单之前,我创建了一个表单,其中包含一个添加新下拉菜单的按钮(选择)"我想验证是否没有选择重复的值",现在我通过下面的代码完成了

jQuery方法:

$('select').on('change', function(){
$("select").not(this).find("option[value="+ $(this).val() + "]").prop('disabled', true);

});

但现在我有两个问题:

1-如果我删除其中一个,则选择其在所有其他中仍然禁用的值

2-从原始菜单开始刷新,然后添加例如5个新菜单代码运行良好,我的意思是在所有6个菜单中没有重复的值,但如果我添加一个新的(第7个菜单),我可以选择任何值,即使它是由前6个菜单选择的

有什么帮助吗?

更新:

以下是JSFiddle:的链接

https://jsfiddle.net/Somayah/oetx6f6c/

我能够得到这样的东西:演示

var disabled = [];
var disableOptions = function () {
  //console.log(disabled);
    $('option').prop('disabled', false);
    $.each(disabled, function(key, val){
        $('option[value="' + val + '"]').prop('disabled', true);
    });
};
$('.moreAttendence').click(function () {
    var box_html = $('select:first').clone();
    $('.more-box').append('<br />');
    $('.more-box').append(box_html);
    box_html.fadeIn('slow');
    disableOptions();
});
$(document).on('change', 'select', function () {
    disabled = [];
    $('select').each(function(){
        if($(this).val() != 'none'){
            $('option').prop('disabled', false);
            disabled.push( $(this).val() );
        }
    });
    disableOptions();
});

希望这能有所帮助!如果你还有其他问题,请告诉我。

最新更新