代码之家  ›  专栏  ›  技术社区  ›  Damien

jquery自动完成问题-未正确处理数组

  •  0
  • Damien  · 技术社区  · 16 年前

    我正在使用jquery autocomplete和mvc用一组列名填充DropDownList。

    每当用户更改窗体上下拉框的值时,我会向控制器发出请求,以返回将填充自动完成框的新列列表(作为数组,包装在JSON结果中)。

    我的问题是,自动完成功能没有区分单词和,而是坚持用C、H、A、R、A、C、T、E、R来做它的字符。这很烦人。代码如下:

    function PopulateColumnsList(list) { 
        $(".columnDropdown").setOptions({ data: list });
    }
    
    $(document).ready(function() {
        $(".columnDropdown").autocomplete("", {
            width: 320,
            max: 14,
            highlight: false,
            minChars: 0,
            scroll: true,
            scrollHeight: 300
        });
    
        $("#Data").change(function() {
            $.ajax({
                url: "/Home/ColumnNamesForDataSelect",
               type: "GET",
               data: { DataSelectID: parseInt($('#Data').val()) },
                success: PopulateColumnsList
           });
      });
    
    });
    

    GET返回此响应:

    [“备忘录”,“余额”]

    但是我的自动完成功能会把每一个字母都显示为一个字母而不是两个:备忘录,余额。我认为这是正确的,因为示例代码显示了返回结果的类似方法。

    有什么想法吗?

    事先谢谢。

    4 回复  |  直到 16 年前
        1
  •  1
  •   Gagravarr    13 年前

    你能举一个你想要的例子吗?我不是百分之百地跟踪。

    我的自动完成只是用户开始在一个文本框中输入,它会查看正在输入的字母,并返回可能的单词。

    我的做法是:

    // JavaScript file
    $("#id").autocomplete("AutoFill", { delay: 1 });
    
    
    // view
    public ContentResult AutoFill(string q)
    {
        var result = // go to database and grab all words that Start with whatever is in q.
    
        string sendBack = null;
        for (int i = 0; i < result.Count; i++)
        {
            sendBack += result[i] + Environment.NewLine;
        }
        return Content(sendBack);
    }
    

    不确定这是否对你有帮助。

        2
  •  1
  •   Justin Johnson    16 年前

    我意识到这可能是一个疯狂的谈话,也不是一个答案,但是由于它似乎在迭代响应的每个下标中的项,您是否尝试将响应包装在另一个类似的数组中, [["Memo","Balance"]] ?

        3
  •  0
  •   Community Mohan Dere    9 年前

    那么,您将绑定到onchange()事件,它将是一个接一个的事件。我遇到了类似的东西,想要全部的价值。我通过重写parse()函数并指定我的XML解析器/格式来处理这个问题,然后我重写result()函数来解析我在parse()函数中设置的行[]数据。

    How do you use POST with jQuery Autocompleter?

    所以,基本上,我总是在第[]行中选择数据和名称(U也可以做JSON)。

    而且,还需要重写formatItem()函数来处理新的row[]数组。

        4
  •  0
  •   dyve    16 年前

    有几个jquery自动完成器。如果你提到你正在使用哪一个会有所帮助。例如,它看起来不像 http://docs.jquery.com/Plugins/Autocomplete/setOptions 您使用的设置选项是什么?