首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >禁用jquery-选择的下拉列表

禁用jquery-选择的下拉列表
EN

Stack Overflow用户
提问于 2013-06-18 01:33:52
回答 7查看 89.8K关注 0票数 91

我有一个select div,我正在使用chosen jquery plugin设置样式并向其中添加特性(最值得注意的是,搜索)。div看起来像这样,

代码语言:javascript
复制
 <select data-placeholder="add a foobar" id="foobar" style="width: 350px;">
 <option value=""></option>
 </select>

我像这样使用选择的插件,

代码语言:javascript
复制
 $('#foobar').chosen();

在加载一些AJAX时,我想禁用整个<select> div。也许像这样的东西,

代码语言:javascript
复制
 $('#foobar').disable()

或者这个

代码语言:javascript
复制
 $('#foobar').prop('disabled', true)

我想你明白我的意思了。

你有什么建议吗?我尝试了很多不同的方法,比如使用jquery的习惯用法来禁用东西,禁用<select>只禁用底层的select,而不是在它上面选择的东西。我甚至手动添加了另一个具有高z-index的div,以使框变灰,但我认为这很可能是丑陋和错误的。

谢谢你的帮助!

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2013-06-18 01:59:31

你只禁用了你的select,但是select会把它渲染成div,span等等。所以在禁用你的选择之后,你需要更新插件来禁用选择小部件。您可以尝试这样做:

代码语言:javascript
复制
$('#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");

我找到了here的信息

Fiddle

一旦您更新了小部件,它所做的就是解除插件上的单击或其他事件的绑定,并将其不透明度更改为0.5。因为div没有真正的禁用状态。

票数 157
EN

Stack Overflow用户

发布于 2013-08-23 03:06:51

在最新版本的中,liszt:updated不再工作。您需要使用chosen:updated

代码语言:javascript
复制
$(".chosen-select").attr('disabled', true).trigger("chosen:updated")

这是一个JSFiddle

票数 52
EN

Stack Overflow用户

发布于 2013-11-02 02:52:20

PSL是正确的,但是since已经更新。

在执行禁用操作后放入以下内容:

代码语言:javascript
复制
$("#your-select").trigger("chosen:updated");
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17153417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档