0

我在我的标签文本框中使用 jquery ui 自动完成,它工作正常,但问题是它只提供一次建议,例如,当我第一次输入一个字符时,它显示建议我从建议中选择一些内容并将其附加到文本框中用逗号但是当我再次输入一个字符时它什么也不显示

我的代码如下

查询

 function split(val) {
        return val.split(/,\s*/);
    }
    function extractLast(term) {
        return split(term).pop();
    }

    $("#tagsss")
    // don't navigate away from the field on tab when selecting an item
        .bind("keydown", function (event) {
            if (event.keyCode === $.ui.keyCode.TAB &&
                    $(this).data("autocomplete").menu.active) {
                event.preventDefault();
            }
        })
        .autocomplete({
            minLength: 0,
            source: function (request, response) {
                $.ajax({
                    url: "/Home/LookUpTag",
                    dataType: "json",
                    data: "searchterm=" + request.term,
                    success: function (data) {
                        response($.map(data, function (item) {
                            //  alert(data.length);
                            return {
                                label: item.Name,
                                value: item.Name,
                                Name: item.Name
                            };
                        }));
                    }
                });
            },
            focus: function () {
                // prevent value inserted on focus
                return false;
            },
            select: function (event, ui) {
                var terms = split(this.value);
                // remove the current input
                terms.pop();
                // add the selected item
                terms.push(ui.item.value);
                // add placeholder to get the comma-and-space at the end
                terms.push("");
                this.value = terms.join(",");
                return false;
            }
        });

我在控制器中的功能

控制器

public JsonResult LookUpTag(string searchterm)
    {

        var tags = context.tagService.Query().Where(x => x.name.Contains(searchterm)).Select(x => x.name).ToList();
        var list = tags.Select(item => new SearchJsonModel
        {
            Name = item,
            Value = item
        }).Select(model => (model)).ToList();
        return Json(list, JsonRequestBehavior.AllowGet);
    }

我做了很多工作,但没有发现任何错误,请告诉我这段代码有什么问题。提前致谢

4

2 回答 2

0

不确定,但您是否错过了打电话给您extractLast()以检索输入中的最后一个词?

源参数

source: function (request, response) {
                $.ajax({
                    url: "/echo/json/",
                    dataType: "json",
                    data: "searchterm=" + extractLast(request.term),
                    success: function (data) {
                        response($.map(data, function (item) {
                            //  alert(data.length);
                            return {
                                label: item.Name,
                                value: item.Name,
                                Name: item.Name
                            };
                        }));
                    }
                });
            }
于 2012-10-30T08:02:24.930 回答
-1

绑定 keydown 和自动完成.......问题是

.bind("keydown", function (event) {

$('########').live("keydown.autocomplete", function() {
$inputbox = $(this);
$inputbox.autocomplete({
source: function(req, add){
$.ajax({
type: "POST",
url: #########################,
dataType: "json",
data: { place_of_loading_code: $inputbox.val() }
}).done(function( msg ) {
resultArr = eval(msg);
add(resultArr);
});
}
});
});
于 2013-05-08T10:58:22.883 回答