Bootstrap-multiselect: deselectAll 和单选多选问题(multiple = false)

创建于 2015-01-22  ·  7评论  ·  资料来源: davidstutz/bootstrap-multiselect

你好,

当我尝试清除我的多选时,多选的标签被正确重置,但是当我打开我的多选时,仍会选中上一个选择的单选按钮。
如果我没有错,我认为它可能来自 deselectAll 函数,其中仅处理复选框案例。

我添加了一个:

var type = this.options.multiple === true ? “复选框”:“收音机”;
我在 js 选择器中使用这个变量(即: $("li input[type='"+type+"']:enabled" ),它似乎工作。这对我很重要,因为我在更改事件上触发了一些东西: )。 如果已经选择了一个值,我们将无法触发更改事件,除非我们选择其他选项并稍后返回。

最有用的评论

同样的问题在这里。
unselectAll不起作用。 取消选择所有选项仅适用于以下几行:
```js
$('.myselect').val('');
$('.myselect').multiselect('refresh');

所有7条评论

可能与#129有关! 但是,我会检查这一点,如#129 中所述,并且我记得,这个问题的一部分也是由于浏览器行为造成的。

如果问题出在浏览器行为上,那么当我们取消全选时,它是否至少可以默认选择第一个单选选项?
在这种情况下,它将对应于所有浏览器上选择的默认状态,就像没有先选择任何东西一样。

我不得不刷新一下: $('#myMS').multiselect('refresh');
摆脱以前选择的项目。

+1
在我们的例子中,我们有几个下拉菜单和 1 个清除它们的按钮。 不幸的是,在清除(使用“clearSelection()”)之后,无法重新选择之前的选择(除非您先选择其他内容)。

为了解决这个问题,我将“更改”事件换成了“点击”事件。
这解决了这个问题,还修复了一个相关的错误,如果你点击一个已经选择的选项,下拉菜单将不会关闭。

是否有理由使用“更改”事件而不是“点击”事件?
我认为切换到“点击”没有任何不利之处。

不确定click事件是否会破坏键盘支持。 在切换之前可能会先检查它。

@zephyx 是否将您提供的解决方案纳入源代码并发布,因为我在 2020 年使用该插件时遇到了同样的问题。

我使用了 .val('')、.multiselect('resfresh')、.multiselect('deselectAll', false) 和 .multiselect('updateButtonText') 的各种组合,如文档和许多问题中所建议的,尽管是特定的组合解决了浏览器端清除选定单选按钮的问题,但是当值提交回服务器时,它选择了最后一个“默认/选定”选项。

有哪些建议?

同样的问题在这里。
unselectAll不起作用。 取消选择所有选项仅适用于以下几行:
```js
$('.myselect').val('');
$('.myselect').multiselect('refresh');

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

Furgas picture Furgas  ·  8评论

fitucated picture fitucated  ·  6评论

webakimbo picture webakimbo  ·  4评论

naxxateux picture naxxateux  ·  5评论

rodrigonunes100 picture rodrigonunes100  ·  3评论