Asp.net mvc JQuery UI自动完成小部件在引导模式下不工作

Asp.net mvc JQuery UI自动完成小部件在引导模式下不工作,asp.net-mvc,asp.net-mvc-5,jquery-ui-autocomplete,Asp.net Mvc,Asp.net Mvc 5,Jquery Ui Autocomplete,我有一个引导模式对话框,其中有一个文本框,我想利用jQueryUIAutoComplete小部件的功能。然而,autocomplete小部件根本没有被激活。我知道这一点,因为我在控制器上的操作上放置了一个断点,该断点应返回自动完成文本框呈现的Json。动作永远不会被击中 出于对我做错了什么的好奇,我将文本框复制粘贴到一个视图上,令我沮丧的是,我在控制器中操作的断点被击中了。我已经将这一点缩小到一个事实,即一旦加载DOM,文本框就永远不会使用自动完成功能。 这是我手机上的文本框 <inpu

我有一个引导模式对话框,其中有一个文本框,我想利用jQueryUIAutoComplete小部件的功能。然而,autocomplete小部件根本没有被激活。我知道这一点,因为我在控制器上的操作上放置了一个断点,该断点应返回自动完成文本框呈现的Json。动作永远不会被击中

出于对我做错了什么的好奇,我将文本框复制粘贴到一个视图上,令我沮丧的是,我在控制器中操作的断点被击中了。我已经将这一点缩小到一个事实,即一旦加载DOM,文本框就永远不会使用自动完成功能。 这是我手机上的文本框

 <input type="text" name="someName" id="autocomplete" data-autocomplete-url="@Url.Action("Autocomplete", "warehouses")" />
下面是我如何连接文本框以使用autocomplete小部件

$(document).ready(function () {
$('#autocomplete').autocomplete({
    source: $(this).data('autocomplete-url'),
    data: {term: $(this).val() }
});
}))


我看到过类似的问题,但没有一个是因为动作没有被击中

根据的文档,它们公开了一组事件,您可以使用它们的大多数JS功能将其连接到这些事件中

在这种情况下,事件是: 显示、显示、隐藏、隐藏和加载

显示模式后,以下代码将初始化自动完成输入字段。(将myModal替换为要显示的模式的id)


如果在切换期间获取包含输入字段的部分并将其附加到模式,则最好在来自该ajax请求的回调中执行此初始化。

而不是
$(this).data(“…
try
$(“#autocomplete”).data(“…
并在控制台中查找任何错误。不需要
数据:{term:$(this.val()}
,因为自动完成将自动为您执行此操作。我已尝试更改为$(“#autocomplete”),但控制台上没有错误。我还删除了数据:{term:$(this.val()}但是没有区别。如果我只是将文本框复制到一个视图中,并尝试键入一封信,我就会得到结果。这意味着问题出在模式对话框上。您是在模式内显示主页上的某个div还是在模式内显示部分视图???。如果您是在模式内显示部分视图,请在p内编写此代码我的模式不显示部分视图中的标记,我在其中为模式设置html,而不调用部分视图。
$(document).ready(function () {
$('#autocomplete').autocomplete({
    source: $(this).data('autocomplete-url'),
    data: {term: $(this).val() }
});
$(document).ready(function () {
  $('#myModal').on('shown.bs.modal', function (e) {

    $("#autocomplete').autocomplete('destroy'); //remove autocompete to reattach
    $('#autocomplete').autocomplete({
      source: $(this).data('autocomplete-url'),
      data: {term: $(this).val() }
    });

  });
});