如果选择更改 - 禁用下一个或上一个选择

时间:2015-06-11 18:26:39

标签: jquery select

我有多个选择 - 成对。对于每一对,我希望其中一个被禁用,如果另一个被更改。

<select name='wf_events[]'>
    <option value=''>--</option>";
    foreach ($ug_array AS $ugrow)
        echo "<option value='".$ugrow["user_group_id"]."'>".$ugrow["user_group_name"]." [".$ugrow["user_group_short"]."]</option>";
    echo "
</select>
or
<select name='wf_events[]'>
    <option value=''>--</option>";
    foreach ($users_array AS $userrow)
        echo "<option value='".$userrow["u_id"]."'>".$userrow["u_realname"]." [".$userrow["u_name"]."]</option>";
    echo "
</select>

任何人?请记住 - 这些对中可以有多个。

编辑: 试过这个:

$('.select_1').change(function(e) {
    if ($('.select_1').val()==1){
        $('.select_2').attr('disabled','disabled');
    }
    else{
        $('.select_2').removeAttr('disabled');
    }
});
$('.select_1').trigger('change');

但如果有多对,则所有select_2都将被禁用。这不是重点;-) 而ID是......不。

也许调用一个函数onchange来禁用下一个 - 或之前的..

编辑编辑:

$(".selectoption").on("change", function(event){
    if($(this).val() == "") {
    $(event.target).attr("disabled", false);
    $(event.target).next().attr("disabled", false);
    $(event.target).prev().attr("disabled", false);
    }
    else
    {
    $(event.target).attr("disabled", false);
    $(event.target).next().attr("disabled", true);
    $(event.target).prev().attr("disabled", true);
    }
});

1 个答案:

答案 0 :(得分:1)

我不知道这是不是你想要的,不是最好的解决方案。

jsfiddle

$(".selectoption").on("change", function(event){
   $(event.target).attr("disabled", false);
   $(event.target).next().attr("disabled", true);
   $(event.target).prev().attr("disabled", true);
});