【问题标题】:Jquery Autocomplete blank fieldJquery 自动完成空白字段
【发布时间】:2020-04-26 09:38:46
【问题描述】:

我遇到了自动完成的问题,它返回如下内容:This 但是,当您检查返回 post 方法的内容时,一切都应如此,但鉴于我们得到的只是空白字段,而不是单词“Hardware”。

我的代码: 构造方法:

[HttpPost]
        public JsonResult CreateJS(string prefix)
        {
            List<CategoryModel> list = new List<CategoryModel>();
            list = _context.Categories.ToList();
            var CatList = (from N in list
                            where N.Name.StartsWith(prefix)
                            select new { value = N.Name,label = N.Name });
            return Json(CatList);

查看:

<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script>
    $(document).ready(function () {
        $("#Category").autocomplete({
            source: function (request, response) {
                $.ajax({
                    url: "/Incident/CreateJS",
                    type: "POST",
                    dataType: "json",
                    data: { Prefix: request.term },
                    success: function (data) {
                        response($.map(data, function (item) {
                            return { label: item.Name, value: item.Name };
                        }))

                    }
                })
            },
            messages: {
                noResults: "", results: ""
            }
        });
    })
</script>
<hr />
<div class="row">
    <div class="col-md-4">
        <form asp-action="Create">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
                <label asp-for="IncidentDescription" class="control-label"></label>
                <input asp-for="IncidentDescription" class="form-control" />
                <span asp-validation-for="IncidentDescription" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="Title" class="control-label"></label>
                <input asp-for="Title" class="form-control" />
                <span asp-validation-for="Title" class="text-danger"></span>
            </div>

        <div class="form-group">
            <label for="Category">Cat:</label>
            <input type"text" name="Category" id="Category"/>
        </div>

【问题讨论】:

    标签: c# jquery asp.net-core


    【解决方案1】:

    在 ajax 回调函数中不需要使用 $.map。直接将数据应用于响应。

    <script>
        $(document).ready(function () {
            $("#Category").autocomplete({
                source: function (request, response) {
                    $.ajax({
                        url: "/Incident/CreateJS",
                        type: "POST",
                        dataType: "json",
                        data: { Prefix: request.term },
                        success: function (data) {
                            response(data);
                        }
                    })
                },
    
            });
        })
    </script>
    

    【讨论】:

      猜你喜欢
      • 2013-01-08
      • 1970-01-01
      • 2010-12-17
      • 2013-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-17
      • 1970-01-01
      相关资源
      最近更新 更多