Javascript 禁用jquery选择下拉列表
我有一个selectdiv,我正在使用它来设置样式并向其中添加功能(最显著的是搜索)。这个部门看起来像这样Javascript 禁用jquery选择下拉列表,javascript,jquery,jquery-chosen,Javascript,Jquery,Jquery Chosen,我有一个selectdiv,我正在使用它来设置样式并向其中添加功能(最显著的是搜索)。这个部门看起来像这样 <select data-placeholder="add a foobar" id="foobar" style="width: 350px;"> <option value=""></option> </select> $('#foobar').chosen(); $('#foobar').disable() 在加载一些A
<select data-placeholder="add a foobar" id="foobar" style="width: 350px;">
<option value=""></option>
</select>
$('#foobar').chosen();
$('#foobar').disable()
在加载一些AJAX时,我想禁用整个
div
<select data-placeholder="add a foobar" id="foobar" style="width: 350px;">
<option value=""></option>
</select>
$('#foobar').chosen();
$('#foobar').disable()
还是这个
$('#foobar').prop('disabled', true)
我想你明白了
有什么办法吗?我尝试了很多不同的方法,比如使用jquery习惯用法来禁用东西,禁用
,这只会禁用底层的select,而不是上面的select。我甚至求助于手动添加另一个具有高z-index
的div,以使其变灰,但我认为这可能是丑陋和有缺陷的
谢谢你的帮助 您只禁用了
select
,但select会将其呈现为div、span等。因此,禁用select后,您需要更新插件,使select小部件也被禁用。您可以这样尝试:
$('#foobar').prop('disabled', true).trigger("liszt:updated");
//For non-older versions of chosen you would want to do:
$('#foobar').prop('disabled', true).trigger("chosen:updated");
我找到了信息
一旦你更新了小部件,它所做的一切就是解除插件上的点击或其他事件的绑定,并将其不透明度更改为0.5。由于div没有真正的禁用状态。在所选的最新版本中,
liszt:updated
不再工作。您需要使用已选择:已更新的:
$(".chosen-select").attr('disabled', true).trigger("chosen:updated")
以下是一个。PSL是正确的,但自那时起已对其进行了更新
在执行禁用操作后,请放置此项:
$("#your-select").trigger("chosen:updated");
这很好用!!!!
@选择v1.3.0您可以尝试以下方法:
$("chosen_one").chosen({
max_selected_options: -1
});
$("#foobar").prop('disabled',true).trigger("chosen:updated").chosen('destroy').chosen()
看起来在liszt:updated
中有一个打字错误,是否应该是'list:updated?liszt
是正确的,但是现在选择selected:updated
是正确的方法。建议:您可能需要在回答的第一个问题时指定代码的最新版本,因为许多用户将使用最新版本。我使用了liszt:updated
,但由于它在新版本中不起作用,所以不起作用。.trigger(“selected:updated”)代码>它还用于激活或停用,例如,如果您在函数中再次调用它。$('foobar option:not(:selected')).prop('disabled',true.).trigger(“selected:updated”);将禁用dropbox中除所选项目之外的其他项目。