在我的MVC应用程序中,我使用自动填充来填充一些输入框。 这在我的一个观点中工作正常。 但在模态弹出窗口中,它不起作用。 Aa ajax调用是从数据库中获取列表,但列表不会出现在搜索框下面。
从这里调用弹出窗口;
<a class="btn btn-info btn-xxs get-tender"
href="#edit-tender-form"
data-toggle="modal"
data-tac-tender-url="/Tender/Get"
data-tac-tender-status="2,Unsuccessful"
data-tac-tender-id="5">Edit</a>
在编辑 - 投标表格中,搜索输入框
<span class="ui-helper-hidden-accessible" role="status" aria-live="polite">10 results are available, use up and down arrow keys to navigate.</span>
<input style="width: 300px;" id="searchTerm" class="input-validation-error" name="searchTerm" type="search" data-tac-autocomplete="/Company/AutocompleteCompany" autocomplete="off">
以下javascript挂钩包含data-tac-autocomplete属性的所有输入搜索框的自动完成功能;
var createAutocomplete = function () {
var $input = $(this);
var options = {
source: $input.attr("data-tac-autocomplete"),
select: updateAutocompleteForm,
close: errorAutocompleteForm
};
$(".errorNotSelected").hide();
$input.autocomplete(options);
};
$("input[data-tac-autocomplete]").each(createAutocomplete);
服务器代码上的断点显示这可以按预期工作;
[Authorize]
public ActionResult AutocompleteCompany(string term)
{
var companyTypeId = this.GetCompanyTypeId();
var model =
this.TacUoW.GetCompanyAutocomplete(term, companyTypeId).Take(10).Select(
x => new
{
label = string.Format("{0} - {1}", x.Company, x.Trade),
id = x.CompanyId
});
return this.Json(model, JsonRequestBehavior.AllowGet);
}
那么为什么我无法在自动填充输入框下看到自动填充的公司列表?
答案 0 :(得分:4)
它可能落后于模式。
var createAutocomplete = function () {
var $input = $(this);
var options = {
source: $input.attr("data-tac-autocomplete"),
select: updateAutocompleteForm,
close: errorAutocompleteForm,
appendTo: $("#edit-tender-form")
};
$(".errorNotSelected").hide();
$input.autocomplete(options);
};
appendTo会将其附加到表单,如果不起作用,请尝试将其添加到模式元素