Javascript 还有一个。我理解OP的要求,因此选项的隐藏将在任何方向进行,或可能跨越多个选择器框。下面的脚本将完全做到这一点:如果您在一个选择器中选择一个选项,它将通过已定义组的其他选择器$grp(通过执行$grp.not(this)。每个((i,trg)=>…)),并将隐藏/显示所有选项,这取决于他们是否已经在其他地方被选中

Javascript 还有一个。我理解OP的要求,因此选项的隐藏将在任何方向进行,或可能跨越多个选择器框。下面的脚本将完全做到这一点:如果您在一个选择器中选择一个选项,它将通过已定义组的其他选择器$grp(通过执行$grp.not(this)。每个((i,trg)=>…)),并将隐藏/显示所有选项,这取决于他们是否已经在其他地方被选中,javascript,jquery,Javascript,Jquery,$(to).toggle(…)方法根据trg的同级选择器中存在的具有相同值的选定选项设置trg中每个选项(to)的可见性(同样,仅限于当前组$grp) 也许脚本有点过于精简,不便于阅读,但它显示了当您使用jQuery的强大功能时,只需很少的代码就可以实现多少 const$grp=$('select[id^=id\u my\u options])//定义选择器组 $grp.on('change',function(ev){//绑定更改事件。。。 $grp.not(this).each((i,tr

$(to).toggle(…)
方法根据
trg
的同级选择器中存在的具有相同值的选定选项设置
trg
中每个选项(
to
)的可见性(同样,仅限于当前组
$grp

也许脚本有点过于精简,不便于阅读,但它显示了当您使用jQuery的强大功能时,只需很少的代码就可以实现多少

const$grp=$('select[id^=id\u my\u options])//定义选择器组
$grp.on('change',function(ev){//绑定更改事件。。。
$grp.not(this).each((i,trg)=>//处理单击的每个同级选择器(trg)
//选择器(此),但仅在jquery中
//选择$grp
$('option[value!=“”]',trg).each((j,to)=>//用于的同级选择器的所有选项
//trg(在jquery选择$grp中):
$(to).toggle($grp.not(trg).find('option[value='+to.value+']:selected')。length==0))
//切换该选项的可见性
)
})

选择。。
汽车
房子
飞机
Car2
房子2
飞机2
另一种选择
Car3
第三家
飞机3


还有一些不相关的选择 Car3 第三家 飞机3
那么,到目前为止您尝试了什么?我添加了上面的代码。希望您能提供帮助。以后,请像我在回答中所做的那样,将您的代码添加到代码段(
工具栏中的图标)中。否则很难读。另外,我假设您的选项具有相同的值。(Car在两个选择中都有值C)。如果没有,告诉我,我会改变答案谢谢你@MihaiT,它起作用了。下次我将在代码段中添加我的代码。那么,到目前为止您尝试了什么?我添加了上面的代码。希望您能提供帮助。以后,请像我在回答中所做的那样,将您的代码添加到代码段(
工具栏中的图标)中。否则很难读。另外,我假设您的选项具有相同的值。(Car在两个选择中都有值C)。如果没有,告诉我,我会改变答案谢谢你@MihaiT,它起作用了。下次我将在代码段中添加我的代码。
<select name="my_option_one" required id="id_my_option_one">
    <option value="" selected>Choose..</option>
    <option value="C">Car</option>
    <option value="H">House</option>
    <option value="A">Airplane</option>
</select>
<select name="my_option_two"  id="id_my_option_two" multiple="multiple">
    <option value="C">Car</option>
    <option value="H">House</option>
    <option value="A">Airplane</option>
</select>  
$(document).ready(function() {
    $("#id_my_option_one").change(function() {
        if ($(this).val() === 'C') {
            $("#id_my_option_two option[value='C']").options[0].remove();
            $('select[name=my_option_two] option:eq(1)').hide();
            $("#id_my_option_two option[value=" + 'C' + "]").hide();
            $("#id_my_option_two option[value='C']").attr('disabled','disabled').hide(); 
        }
    });
});
<select name="my_options"  id="firstblock" onchange="disable(2,this.value);">
    <option value="" selected>Choose..</option>
    <option value="C">Car</option>
    <option value="H">House</option>
    <option value="A">Airplane</option>
</select>
<select name="my_options"  id="secondblock" onchange="disable(1,this.value);">
    <option value="" selected>Choose..</option>
    <option value="C">Car</option>
    <option value="H">House</option>
    <option value="A">Airplane</option>
</select>

<script>

   function disable(needtoblock,val){
   console.log(needtoblock+" "+val);
    if(val != ""){

        if(needtoblock == 1){
         $("#firstblock option[value='"+val+"']").prop('disabled', true);
        }else if(needtoblock == 2){
         $("#secondblock option[value='"+val+"']").prop('disabled', true);
        }else{

        }
    }else{
             $("#secondblock option").prop('disabled', false);
             $("#firstblock option").prop('disabled', false);
    }
   }
</script>