替换Mvc局部视图后的select2 jquery不再起作用

时间:2015-11-26 06:26:49

标签: ajax asp.net-mvc jquery-select2 asp.net-mvc-partialview

我的代码放在这样的部分视图中:

@Html.DropDownListFor(model => model.UserProfileInstance.Employee_Id, new SelectList(Model.EmployeeList, "Id", "FullName"), new { id = "e1" })
<script>
  $(document).ready(function() {
        $("#e1").select2();
      }
</script>

第一次它正常工作,但是在Ajax的部分视图表单刷新之后,它再次正确加载但是无法搜索,输入框被禁用。 我在多个select2中没有这个问题。

1 个答案:

答案 0 :(得分:6)

您需要重新附加插件。最简单的方法是将插件初始化代码不仅放在$(document).ready()函数中,还放在.ajaxComplete()上。

$(document).ajaxComplete(function() {
  $("#e1").select2();
});

这将在从ajax添加之后在DOM中新添加的元素上启动插件。

但是如果你的View上有另一个ajax调用,请小心。在这种情况下,您应该将初始化代码放在刷新部分视图调用的success回调中。