当 select 其中 select 名称相同但值不同时禁用兄弟元素

Disable sibling element when one is select where select name are same but value is different

我的网站有四个 html select 具有相同的 select 名称和不同的值。

<td>
    <select name="bali" disabled>
        <?php
            $query="select * from bali_intro";
            $result=$con->query($query) or die($con->error);
            while($row=$result->fetch_assoc()){
            $heading=$row['heading'];
        ?>
        <option value="<?php echo $heading?>"><?php echo $heading?></option>
        <?php } ?>
    </select>
</td>

<td>
    <select name="bali" disabled>
        <?php
            $query="select * from veg_intro";
            $result=$con->query($query) or die($con->error);
            while($row=$result->fetch_assoc()){
            $heading=$row['heading'];
        ?>
        <option value="<?php echo $heading?>"><?php echo $heading?></option>
        <?php } ?>
    </select>
</td>

<td>
    <select name="bali" disabled>
        <?php
            $query="select * from fruit_intro";
            $result=$con->query($query) or die($con->error);
            while($row=$result->fetch_assoc()){
            $heading=$row['heading'];
        ?>
        <option value="<?php echo $heading?>"><?php echo $heading?></option>
        <?php } ?>
    </select>
</td>

<td>
    <select name="bali" disabled>
        <?php
            $query="select * from pasu_intro";
            $result=$con->query($query) or die($con->error);
            while($row=$result->fetch_assoc()){
            $heading=$row['heading'];
        ?>
        <option value="<?php echo $heading?>"><?php echo $heading?></option>
        <?php } ?>
    </select>
</td>

我想在 selected 时禁用同级 select 元素。我使用以下代码解决此问题

$('select[name="bali"]').click(function(){
    $(this).removeAttr('disabled').siblings().attr('disabled','disabled');
});

但是没用。 jquery 适合这个问题的函数是什么?

select 没有兄弟姐妹,它位于有兄弟姐妹的 TD 元素内

var elems = $('select[name="bali"]').on('change', function(){
    $(this).prop('disabled', false)
    elems.prop('disabled', true);
});

点击时启用 select 元素似乎不是个好主意?

我认为 this JSFiddle 是您的目标。

$('select[name="bali"]').change(function(){
    $("select[name='bali']").attr('disabled','disabled');
    $(this).removeAttr('disabled');
});

选择的对象不是兄弟姐妹,因此未找到它们。

删除html中添加的默认禁用属性,它不会触发点击事件。 很可能它会解决您的问题。