Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 禁用jquery选择下拉列表_Javascript_Jquery_Jquery Chosen - Fatal编程技术网

Javascript 禁用jquery选择下拉列表

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

我有一个selectdiv,我正在使用它来设置样式并向其中添加功能(最显著的是搜索)。这个部门看起来像这样

 <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中除所选项目之外的其他项目。