4

我正在使用jQuery MultiSelect Widget。使用 IE 时,如果我从基本下拉列表中选择 3 个选项,浏览到另一个页面,然后按浏览器后退按钮,则值将保留在下拉列表中。如果我刷新页面,这些值仍然保留。强制刷新会清除这些值。

在 Chrome 中,如果我做同样的事情,则不会保留这些值。

使用我的网站(遗憾的是还不能通过 Internet 访问),在 IE8 中,复选框的选中状态似乎在视觉上保留,但复选框的状态未选中。

我曾尝试调用“uncheckAll”方法,但复选框仍处于选中状态。我在我的代码中放置了一个警报以显示所选选项的数量,即使选中了复选框,该值也为零。

多选列表的状态是如何被 IE 保留的,可以防止吗?

4

2 回答 2

0

在绑定小部件之前尝试取消绑定。在附加之前取消绑定事件附件是一种很好的做法,以避免出现上述任何问题。

尝试

$("select").unbind(); 

然后附加多选。jquery-unbind() off() all 都使用适合您的 jquery 版本的那个。我想你也会在 Mozilla 中遇到同样的问题。

于 2013-06-06T09:29:05.437 回答
0

调用多选插件的 unchekAll() 方法似乎是最简单的方法。由于我看不到您的代码,因此您可能没有以正确的方式调用它:

$("select").multiselect("uncheckAll");

但是现在,在哪里调用这个方法呢?

对于跨浏览器的一致性,我认为正确的方法是使用 onbeforeunload 处理程序,据我所知,它会在所有浏览器中触发。所以,这个片段应该在所有情况下都有效:

window.onbeforeunload = function(){$("select").multiselect("uncheckAll")};

让我知道这是否能解决您的问题?

于 2013-06-02T13:05:52.480 回答