使用浏览器后退按钮后Select2下拉菜单不起作用

时间:2019-02-14 20:04:47

标签: javascript html asp.net-mvc razor jquery-select2

我目前正在一个包含多个Select2下拉列表的搜索页面上。下拉列表在首页加载时效果很好,,但是仅当有人搜索然后单击浏览器后退按钮并返回页面时,才会出现此问题。加载下拉列表/输入的缓存值并发生问题。我所有其他表单输入都完全正常地加载了缓存,没有任何问题。

在其浏览器中单击“后退按钮”后,带有Select2下拉列表的搜索页面将再次加载,并且从以前输入的任何条目中存储他们搜索的“缓存”值。除页面上的select2以外,所有输入法的缓存值均正确显示。加载带有Select2的下拉菜单时,显示的文本将还原为我设置的占位符“所有单位”(表示未选择任何内容),但Select2的仍设置为他们刚刚搜索的内容。

这会造成一个令人困惑的问题,并迫使用户搜索他们先前选择的内容,而无法清除下拉菜单。

以下是下拉菜单始终显示的外观(以及首页加载后的外观)

enter image description here

这是用户单击“后退”按钮并返回页面后,select2下拉菜单的外观

enter image description here

起初看起来很正常,但是当您展开下拉列表时,您会找到选定的缓存值,但前提是您必须展开下拉列表:

enter image description here

已选择一个项目(先前选择的项目),但未在实际值区域中显示该项目已被选中,但仍显示“所有单位”。用户无法取消选择该值或知道它仍然存在。这导致用户必须重新启动页面或清除缓存,才能“取消搜索” select2值

这是我的代码,对于这个令人困惑的问题,我们将给予任何帮助。

@Html.DropDownListFor(model => model.UnitID, Model.unitIDL, new { @class = 
 "select2", style = "width: 165px" })

  <script type="text/javascript">
        $(".select2").select2(
            {
                allowClear: true,
                placeholder: "All Units"
            })
    </script>

1 个答案:

答案 0 :(得分:0)

您使用的是哪个版本的jQuery?我将jQuery从1.11版本升级到了3.5.1版本,这个问题就消失了

此处下载jQuery的说明: https://jquery.com/download/