自动完成忽略了minLength&延迟设定

时间:2014-05-14 16:36:40

标签: jquery razor

我的剃刀视图中有以下脚本: -

$("#Technology2_Tag").autocomplete({
    source: function (request, response) {
        $.ajax({
            url: "/Switch/AutoComplete2",
            dataType: "json",
            minLength: 3, delay: 1000,
            data: {
                term: request.term,
                SearchBy: $("#ChoiceTag").prop("checked") ? $("#ChoiceTag").val() : $("#ChoiceName").val(),
            },
            success: function (data) {
                response(data);
            }
        });
    },
});

目前autocomplete在键入第一个字符后触发,而不是在minLength设置中提到的至少输入3个字符后触发。任何人都可以建议可能出现的问题吗?

由于

2 个答案:

答案 0 :(得分:4)

您要在 ajax 属性中添加自动填充属性,请按以下方式进行更改:

$("#Technology2_Tag").autocomplete({
             minLength: 3, 
             delay: 1000,
            source: function (request, response) {
                $.ajax({
                    url: "/Switch/AutoComplete2",
                    dataType: "json",

                    data: {
                        term: request.term,
                        SearchBy: $("#ChoiceTag").prop("checked") ? $("#ChoiceTag").val() : $("#ChoiceName").val(),
                    },
                    success: function (data) {
                        response(data);
                    }
                });
            }

        });

答案 1 :(得分:1)

我认为minLength和delay应该在source的定义之外定义:

$("#Technology2_Tag").autocomplete({
            source: function (request, response) {
                $.ajax({
                    url: "/Switch/AutoComplete2",
                    dataType: "json",                       
                    data: {
                        term: request.term,
                        SearchBy: $("#ChoiceTag").prop("checked") ? $("#ChoiceTag").val() : $("#ChoiceName").val(),
                    },
                    success: function (data) {
                        response(data);
                    }
                });
            },
             minLength: 3,
             delay: 1000,

        });