我在开发PyroCMS模块时遇到了一个小问题。
我想使用 jQuery 动态更新下拉列表。我想设置选定的选项,但它似乎不起作用,因为下拉列表不是浏览器的默认选项。
我试过这个:
$('select[name=item-type] option[value='+type+']').attr('selected', 'selected');
但用户界面没有更新。
我在开发PyroCMS模块时遇到了一个小问题。
我想使用 jQuery 动态更新下拉列表。我想设置选定的选项,但它似乎不起作用,因为下拉列表不是浏览器的默认选项。
我试过这个:
$('select[name=item-type] option[value='+type+']').attr('selected', 'selected');
但用户界面没有更新。
最后我找到了解决方案。
下拉自定义 UI 由一个名为Chosen的插件提供支持。
编辑 DOM 元素不会更新Chosen 下拉 UI,因为此插件不会动态监视其附加的<select>
. 你需要明确地告诉 Chosen 你刚刚通过触发一个事件更新了 DOM。
直到版本2.3
PyroCMS 使用 Chosen 0.9
,所以你可以触发这样的事件:
$('select.any-selector').trigger("liszt:updated");
要完整,选择1.0
事件已更改,您必须使用:
$("select.any-selector").trigger("chosen:updated");
参考:
我有解决方案
需要进行两项更改
采用
$('.selector').chosen().change(function() {
});
代替
$('.selector').change(function() {
});
当您想更新下拉菜单时,请使用
$('.selector').trigger("liszt:updated");
在这里你去......玩得开心!