【问题标题】:select2 jquery after replacing Mvc partial view doesn't work any more替换 Mvc 部分视图后的 select2 jquery 不再起作用
【发布时间】:2016-02-29 03:35:35
【问题描述】:

我的代码被放置在这样的局部视图中:

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    这将在从 ajax 添加到 DOM 后,在新添加的元素上初始化您的插件。

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

    【讨论】:

    • $(document).ready() 处于部分视图中,意味着插件,是在 Ajax 之后启动的,而我也尝试了你的建议,我把它放在 $(document).ajaxComplet() 虽然它已启动,但我无法在搜索框中输入任何内容
    • @sepideh 那么你能在你的问题中提供细节吗?我的意思是你的 ajax 调用和你的局部视图
    • 感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-08
    • 1970-01-01
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多