jQuery UI MultiSelect Widget选择保留在IE中,但不保留在Chrome中

时间:2013-05-31 07:50:17

标签: jquery jquery-ui

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

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

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

我尝试调用'uncheckAll'方法,但仍然会选中复选框。我在我的代码中发出警告以显示所选选项的数量,即使选中了复选框,该值也为零。

IE如何保留多选列表的状态并且可以防止它?

2 个答案:

答案 0 :(得分:0)

调用multiselect插件的unchekAll()方法似乎是最简单的方法。由于我无法看到您的代码,也许您没有以正确的方式调用它:

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

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

对于跨浏览器的一致性,我认为正确的方法是使用onbeforeunload处理程序,这是我所知道的在所有浏览器中触发的。因此,此代码段应该适用于所有情况:

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

如果这可以解决您的问题,请告诉我?

答案 1 :(得分:0)

在绑定窗口小部件之前尝试解除绑定。在附加之前取消绑定事件附件是一个好习惯,以避免上述任何问题。

尝试

$("select").unbind(); 

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