Javascript 引导选择器不会使用内置函数重置

Javascript 引导选择器不会使用内置函数重置,javascript,jquery,html,ajax,twitter-bootstrap,Javascript,Jquery,Html,Ajax,Twitter Bootstrap,我有一个引导选择器数组,用于从数据库筛选结果。我需要一种方法将所有选择器重置为“未选择”,这是我的代码: HTML 尝试重置所有选择器: $('#reset_filters').click(function() { $('.selectpicker').selectpicker('deselectAll'); $('.selectpicker').selectpicker('render'); $('.selectpicker').selectpicker('refres

我有一个引导选择器数组,用于从数据库筛选结果。我需要一种方法将所有选择器重置为“未选择”,这是我的代码:

HTML 尝试重置所有选择器:

$('#reset_filters').click(function() {
    $('.selectpicker').selectpicker('deselectAll');
    $('.selectpicker').selectpicker('render');
    $('.selectpicker').selectpicker('refresh');
    $(this).closest('form').find('.selectpicker').each(function() {
        $(this).selectpicker('render');
    });
});
.not('.divider') //prevents the divider receiving a click event! 
.not('.disabled') //ignore any disabled elements
.filter('.selected') / .not('.selected') //depending if its selectAll() or deselectAll()
.filter(':visible') //prevent any non-visible element receiving a click event!?

正如你所看到的,我已经尝试了所有的函数重置,但是没有用,所以我显然在逻辑上犯了一些错误。

因此我查看了selectpicker.js文件,
取消所有
选择所有
函数都通过一些参数过滤各自的选项(参见第884行):

有点崩溃:

$('#reset_filters').click(function() {
    $('.selectpicker').selectpicker('deselectAll');
    $('.selectpicker').selectpicker('render');
    $('.selectpicker').selectpicker('refresh');
    $(this).closest('form').find('.selectpicker').each(function() {
        $(this).selectpicker('render');
    });
});
.not('.divider') //prevents the divider receiving a click event! 
.not('.disabled') //ignore any disabled elements
.filter('.selected') / .not('.selected') //depending if its selectAll() or deselectAll()
.filter(':visible') //prevent any non-visible element receiving a click event!?
我的问题是
.filter(':visible')
,当点击事件被触发时,列表不可见,因此这些选项被过滤掉,因此没有被“点击”/“取消选择”。 我修改了我的插件版本,现在我的“重置”按钮按预期工作。新的路线是:


this.$lis.not('.divider')。not('.disabled')。filter('.selected')。find('a')。click()

我从以下代码中获得了解决方案。请尝试

$("#listID").val('').trigger('change');
你也可以试试这个

$("#listID").val('').selectpicker('refresh');

也许有点晚了,但也许有一天它会帮助别人。对我来说,解决办法是:

$("#listID").val([]).selectpicker('refresh');

我有multiselect选项,您可以用它替换为空数组的选定项,否则您将选择值为空val(“”)的选项。

今天尝试了“重置”代码段,取消了选择我的选择框。所以这个问题可能已经解决了。稍后再给别人留言。你才是真正的MVP。如果您查看silviomoreto的github(),您将看到他在过去几年中对代码进行了巨大的更改。v1.6.3->v1.12.2
$("#listID").val([]).selectpicker('refresh');