Javascript 默认情况下,jquery禁用复选框

Javascript 默认情况下,jquery禁用复选框,javascript,jquery,html,Javascript,Jquery,Html,我当前的脚本正在禁用和启用之间切换 <script> $("#filter").attr('checked', !$("#mylist")[0].disabled); $("#filter").click(function() { $("#mylist").attr('disabled', !this.checked) }); </script> $(“#过滤器”).attr('checked',!$(“#mylist”)[0]

我当前的脚本正在禁用和启用之间切换

<script>
    $("#filter").attr('checked', !$("#mylist")[0].disabled);
    $("#filter").click(function() {
        $("#mylist").attr('disabled', !this.checked)
    });
</script>

$(“#过滤器”).attr('checked',!$(“#mylist”)[0]。已禁用);
$(“#过滤器”)。单击(函数(){
$(“#mylist”).attr('disabled',!this.checked)
});
我的html代码是:

<div>
    <div class="checkbox">
        <input type="checkbox" checked="checked" id="filter" />
        <label for="filter">Types</label>
        <br>
    </div>
    <select class="selectpicker" id="mylist" multiple>
        <option>A</option>
        <option>B</option>
        <option>C</option>
    </select>
</div>

类型

A. B C
默认情况下,复选框处于选中状态,当我删除“checked=”复选框时,它根本不起作用。

如何在默认情况下禁用此功能,并且仅在以后启用/禁用它?

请参见编辑

$(“#过滤器”).prop('checked',false);
$(“#过滤器”)。单击(函数(){
$(“#mylist”).prop('checked',true);
});

类型

A. B C
请参见编辑

$(“#过滤器”).prop('checked',false);
$(“#过滤器”)。单击(函数(){
$(“#mylist”).prop('checked',true);
});

类型

A. B C
试试这个:

HTML: 试试这个:

HTML:
您需要这样做吗?如果
取消选中=禁用
检查=启用
。默认情况下是
取消选中
禁用
。使用默认值更改
选中
也启用它

$(文档).ready(函数(){
$(“#过滤器”).attr('checked',false);
if(!$(“#过滤器”).attr('checked')){
$(“#mylist”).attr('disabled','true”);
}
$(“#过滤器”)。单击(函数(){
$(“#mylist”).attr('disabled',!this.checked);
});
});

类型

A. B C
您需要这样做吗。如果
取消选中=禁用
检查=启用
。默认情况下是
取消选中
禁用
。使用默认值更改
选中
也启用它

$(文档).ready(函数(){
$(“#过滤器”).attr('checked',false);
if(!$(“#过滤器”).attr('checked')){
$(“#mylist”).attr('disabled','true”);
}
$(“#过滤器”)。单击(函数(){
$(“#mylist”).attr('disabled',!this.checked);
});
});

类型

A. B C
使用html代码禁用选择框。无需使用javascript禁用它。 因此,请删除此代码

$("#filter").attr('checked', !$("#mylist")[0].disabled);
从你的脚本和它的html像这样

<select class="selectpicker" id="mylist" multiple disabled>

这将在开始时为您提供禁用的selectbox和未选中的复选框。

使用html代码禁用selectbox。无需使用javascript禁用它。 因此,请删除此代码

$("#filter").attr('checked', !$("#mylist")[0].disabled);
从你的脚本和它的html像这样

<select class="selectpicker" id="mylist" multiple disabled>


这将在开始时为您提供禁用的selectbox和未选中的复选框。

使用
.prop()
instead@guradio我怎么做?你能给出一个完整的答案吗?我认为你在倒行逆施。您不应基于
$(“#mylist”)[0]设置复选框。禁用的
,而应基于复选框启用或禁用选择。使用
.prop()
instead@guradio我怎么做?你能给出一个完整的答案吗?我认为你在倒行逆施。您应该启用或禁用基于复选框的选择,而不是基于
$(“#mylist”)[0]设置复选框。默认情况下,它是选中的,我希望它在默认情况下被禁用。我认为您缺少我提到的要点,我不希望它在默认情况下被启用。默认情况下它应该被禁用,意思是默认情况下不被选中。@marcel remove checked=“checked”然后默认情况下不被选中。默认情况下,它是被选中的,我希望它被禁用。我想你错过了我提到的要点,我不希望它被默认启用。默认情况下它应该被禁用,这意味着默认情况下未选中。@marcel remove checked=“checked”那么未被默认选中此选择元素即使在选中复选框后仍保持禁用状态您是否有任何其他javascript代码与您的选择元素交互?我只有multiselect js此选择元素即使在选中复选框后仍保持禁用状态您是否有任何其他javascript代码与您的选择元素交互元素?我只有multiselect js,即使选中复选框,select元素仍保持禁用状态!是否需要“即使选中复选框,选择元素仍保持禁用状态!”@marcel.看到我的答案了吗?检查后启用你的答案是有效的,但问题是当我从中添加multiselect类时,它不起作用。问题是什么。然而,对于我自己的代码,它可以工作,但它在一开始是启用的!即使选中复选框,选择元素仍保持禁用状态!是否需要“即使选中复选框,选择元素仍保持禁用状态!”@marcel.看到我的答案了吗?检查后启用你的答案是有效的,但问题是当我从中添加multiselect类时,它不起作用。问题是什么。然而,对于我自己的代码,它可以工作,但它在一开始是启用的!
$("#filter").click(function() {
    $("#mylist").attr('disabled', !this.checked)
});