【发布时间】:2017-09-12 07:23:37
【问题描述】:
我有几个下拉菜单,其中只有一个从一开始就启用,其他所有都禁用
<select class="someClass" name="someName" multiple id="someId" disabled>
禁用下拉菜单的启用取决于第一个(启用)下拉菜单中值的选择,因此我使用以下代码
$('#enabledDropDown').on('change',function() { }
在那里(在进一步的 if 语句中)我尝试了以下所有可能的组合:
$('#someId').multiselect('enable');
$('#someId').multiselect('refresh');
$('#someId option').attr('disabled',false);
$('#someId').prop('disabled', false);
$('#someId').material_select();
$('#someId').removeAttr('disabled');
但它只是不起作用。下拉菜单仍处于禁用状态!
编辑:
我有一个$(document).ready(function () { }
执行以下操作...
$('#someId').multiselect({
name : 'someName',
columns : someNumber,
placeholder : 'somePlaceholder'
});
这似乎是我的问题的原因,因为如果我在 document.ready 函数中删除相应的代码块,则下拉菜单的行为符合预期。 问题是我需要那个 document.ready 函数。
我真的不明白为什么会发生这种交互,因为 document.ready 仅在侧面加载时执行一次。但启用是在那之后发生的。
【问题讨论】:
-
试试
$('#someId').attr('disabled', false); -
那些
multiselectmaterial_select来自哪里?一些插件?如果是这样,文档可能会有一些关于它的信息 -
你试过
$("#someId").slideToggle(); -
如果可能的话,创建一个 sn-p 或 fiddler。
-
如果它的倍数那么它应该是
标签: javascript jquery multi-select