JQuery自动完成功能不会自动完成

时间:2012-08-30 16:26:08

标签: c# jquery json jquery-autocomplete jsonresult

我正在尝试编写我的第一个jQuery自动完成示例。我需要能够从自动完成中选择多个值,因此我使用了here提供的示例。

无论我做什么,当我输入“c”,“ch”等时,我无法让文本框显示值“鸡”和“鸡”等。我做错了什么?

我的控制器有这个动作方法

public JsonResult GetBirds()
{
    var result = new JsonResult
        {
            Data = new
                {
                    Birds = new List<string> {"chicken", "chickens"}
                },
            JsonRequestBehavior = JsonRequestBehavior.AllowGet
        };

    return result;
}

我的前端代码就是这样:

<script>
    $(function () {
        function log(message) {
            $("<div/>").text(message).prependTo("#log");
            $("#log").scrollTop(0);
        }

        $("#birds").autocomplete({
            source: "/Results/GetBirds",
            minLength: 1,
            select: function (event, ui) {
                log(ui ?
                "Selected: " + ui :
                "Nothing selected, input was " + this.value);
            }
        });
    });
</script>



<div class="demo">

    <div class="ui-widget">
        <label for="birds">Birds: </label>
        <input id="birds" />
    </div>

    <div class="ui-widget" style="margin-top:2em; font-family:Arial">
        Result:
        <div id="log" style="height: 200px; width: 300px; overflow: auto;" class="ui-widget-content"></div>
    </div>

</div><!-- End demo -->

3 个答案:

答案 0 :(得分:0)

使用Rest Clint或Firebug Firefox插件查看从控制器返回的内容。

试试这个:

返回Json(new {“chicken”,“chickens”},JsonRequestBehavior.AllowGet);

答案 1 :(得分:0)


您需要为每个对象构建一个包含“value”和“label”的字典列表。

http://api.jqueryui.com/autocomplete/

答案 2 :(得分:0)

您的来源格式不正确,请忘记您的#34; Birds&#34;键入json结果。请跟:

Data = new List<string> {"chicken", "chickens"}

Data = new Dictionary<string, string> {
    {"chiken", "value1"},
    {"chikens", "value2"},
};