Javascript 如果已选中,则从选择框中禁用选项

Javascript 如果已选中,则从选择框中禁用选项,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,我有一个id=fields列表的表,在这个表4的选择框中有相同的类db列表。现在我想,如果选择了第一个选择中的选项,请在选择框的其余部分禁用此选项 <table id="fields-list" class="table table-hover"> <select class="form-control db-list" > <option value="">All</option> <option valu

我有一个id=fields列表的表,在这个表4的选择框中有相同的类db列表。现在我想,如果选择了第一个选择中的选项,请在选择框的其余部分禁用此选项

<table id="fields-list" class="table table-hover">
   <select class="form-control db-list" >
       <option value="">All</option>
       <option value="d">1</option>
       <option value="t">2</option>
       <option value="t">3</option>
       <option value="h">4</option>
   </select>
   <select class="form-control db-list" >
       <option value="">All</option>
       <option value="d">1</option>
       <option value="t">2</option>
       <option value="t">3</option>
       <option value="h">4</option>
   </select>
</table>
但不是工作。你能帮我吗?提前谢谢,我的英语很抱歉

需要如何工作: 1.首先从页面中选择选项1所有选择框应禁用选项1; 2.第二次选择选项3页面中的所有选择框应禁用上一次选择的选项3+选项1 3.首先选择选项4现在所有选择框应禁用选项4+选项3并启用选项1

$('.db-list:first').on('change', function () {
    // enable all first
    $('.db-list:last option').prop('disabled', false);

    // disable the selected value
    $('.db-list:last option[value="'+ $(this).val() +'"]').prop('disabled', true);    

});
顺便说一下,在一个选择选项中,选项的值不应该相同

表应该更改为其他内容,例如div,因为表应该包含ad、tbody或tr

这一行:

$this.val$this.findoption:first.val.prop'disabled',true

将禁用选择,但不禁用选项,请尝试以下操作:

$('#fields-list').find('select option[value='+$(this).val()+']:not(:selected)').prop('disabled', true);
工作示例

$'.db list'。关于“焦点”,函数{ var ddl=$this; ddl.data'previous',ddl.val; }.关于“变化”,函数{ var ddl=$this; var previous=ddl.data'previous'; ddl.data'previous',ddl.val; 如果以前{ $'fields-list'.find'select option[value='+previous+']'。removeAttr'disabled'; } $'fields-list'.find'select option[value='+$this.val+']:not:selected'.prop'disabled',true; }; 全部的 1. 2. 3. 4. 全部的 1. 2. 3. 4.
可以使用.filter获取具有类似值的选项

$('select').on('change', function() {
    $('option').prop('disabled', false);
    $('select').each(function() {
        var val = this.value;
        $('select').not(this).find('option').filter(function() {
            return this.value === val;
        }).prop('disabled', true);
    });
}).change();

没有按预期工作。。。。例如,在第一个选择中,我选择1在第二个选择中,我选择2,当我转到第一个选择时,我想选择3,选项1应该是活动的,但不是这样。如果从选择中选择了另一个选项,我如何激活禁用的选项?这不是预期的效果,因为预期的效果与您的问题不太一致。请分享您解决所述问题的尝试。并且可能会为它创造另一个问题完美的答案!!谢谢
$('select').on('change', function() {
    $('option').prop('disabled', false);
    $('select').each(function() {
        var val = this.value;
        $('select').not(this).find('option').filter(function() {
            return this.value === val;
        }).prop('disabled', true);
    });
}).change();