我有一个select div,我正在使用chosen jquery plugin设置样式并向其中添加特性(最值得注意的是,搜索)。div看起来像这样,
<select data-placeholder="add a foobar" id="foobar" style="width: 350px;">
<option value=""></option>
</select>
我像这样使用选择的插件,
$('#foobar').chosen();
在加载一些AJAX时,我想禁用整个<select>
div。也许像这样的东西,
$('#foobar').disable()
或者这个
$('#foobar').prop('disabled', true)
我想你明白我的意思了。
你有什么建议吗?我尝试了很多不同的方法,比如使用jquery的习惯用法来禁用东西,禁用<select>
只禁用底层的select,而不是在它上面选择的东西。我甚至手动添加了另一个具有高z-index
的div,以使框变灰,但我认为这很可能是丑陋和错误的。
谢谢你的帮助!
发布于 2013-06-18 01:59:31
你只禁用了你的select
,但是select会把它渲染成div,span等等。所以在禁用你的选择之后,你需要更新插件来禁用选择小部件。您可以尝试这样做:
$('#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的信息
一旦您更新了小部件,它所做的就是解除插件上的单击或其他事件的绑定,并将其不透明度更改为0.5。因为div没有真正的禁用状态。
发布于 2013-08-23 03:06:51
在最新版本的中,liszt:updated
不再工作。您需要使用chosen:updated
$(".chosen-select").attr('disabled', true).trigger("chosen:updated")
这是一个JSFiddle。
发布于 2013-11-02 02:52:20
PSL是正确的,但是since已经更新。
在执行禁用操作后放入以下内容:
$("#your-select").trigger("chosen:updated");
https://stackoverflow.com/questions/17153417
复制相似问题