0

タグテキストボックスでjqueryuiオートコンプリートを使用していますが、正常に機能していますが、問題は、提案が1回だけ表示されることです。たとえば、文字を初めて入力すると、提案が表示され、提案から何かを選択して、テキストボックスに追加します。カンマ付きですが、もう一度文字を入力しても何も表示されません

私のコードは次のとおりです

JQUERY

 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()、入力の最後の用語を取得するために your を呼び出すのを忘れていませんか?

ソース パラメータ

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 に答える