2015-03-03 81 views
1

我创建了一个表单,其中包含一个按钮来添加一个新的下拉菜单(选择)“我想验证没有重复值选择”提交前的形式,现在,我通过下面的代码jquery:没有重复选择许多下拉菜单的相同值

jQuery的方法所做的:

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

});

但现在我有两个问题:

1 - 如果我删除其值在所有其他仍被禁用

始于2-新鲜与原来的菜单,然后添加例如5个新的选择之一菜单 代码工作正常我的意思是在所有6个菜单中没有重复的值但是如果我添加一个新的菜单(第7个菜单),我可以选择任何值,即使它通过前6个菜单选择

任何帮助?

UPDATE:

这里是链接到的jsfiddle:

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

+0

在添加选中检查禁用选项后,并删除该特定选项的disbaled属性 – 2015-03-03 13:16:34

+0

我们可以看到一个带标记的例子吗? JSFiddle也许? – wrxsti 2015-03-03 13:25:46

+0

@wrxsti检查它plz:“) – Learner 2015-03-05 06:28:18

回答

1

我能得到的东西的工作是这样的:DEMO

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(); 
}); 

希望这有助于!如果您有任何其他问题,请告诉我。

+0

它不能正常工作 – Sedz 2015-03-05 13:03:50

+0

以哪种方式?我会看看我能做些什么 – wrxsti 2015-03-05 13:04:29

+0

@wrxsti这里没有验证你可以在你添加的所有菜单中选择相同的值,但是我真的很感谢你的努力:) – Learner 2015-03-05 13:08:22