【问题标题】:JSON Autocomplete ASP.NET Jquery UIJSON 自动完成 ASP.NET Jquery UI
【发布时间】:2012-04-15 17:04:46
【问题描述】:

我创建了一个 Web 服务,它基本上是一组 json 值,用于我的应用程序中的一组操作。这个想法是它将从 MongoDB 集合返回一组键/值。到目前为止,返回值有点像:

    {"d":"[{\"label\":\"Add A Customer\",\"value\":\"\/EdCustomer\/\"},{\"label\":\"View Suppliers\",\"value\":\"\/Suppliers\/\"},{\"label\":\"Add A Customer\",\"value\":\"\/EdCustomer\/\"}]"}

我有以下 Javascript/JQuery 来使用作为 JQuery UI 一部分的自动完成功能:

   var commands;
   var commandstest = [
  {
     value: "test1",
     label: "test1"
  },
  {
    value: "test2",
    label: "test2"
  }
 ];
  $(document).ready(function () {
     //The search button
    $("#btnCmdSearch")
     .button()
     .click(function () {
        alert("You searched for " + txtSearch.value);
    });

$.ajax({
  url: "http://localhost:50305/SearchCommands.svc/GetCommands",
  dataFilter: function (data) {
    var msg = eval('(' + data + ')');

    if (msg.hasOwnProperty('d'))
      return msg.d;
    else
      return msg;
  },
  success: function (data) {
     commands = data;
  }
});

//The search Box AutoComplete...
$("#txtSearch").autocomplete({
  source:commands,
  minLength: 2,
});

});

有趣的是,当我在自动完成方法的源代码中使用 commandstest 时,它按预期工作。如果我使用命令(json 数组),那么什么也不会发生。我查看了 chrome,我得到了错误:

    Uncaught TypeError: Property 'source' of object #<Object> is not a function

如果我将 var 命令的声明更改为:

   var commands = new Array();

然后此错误消息不会出现,但自动完成仍然没有任何反应。我到底做错了什么?

【问题讨论】:

    标签: javascript jquery asp.net json jquery-ui


    【解决方案1】:

    我认为 source 需要是一个返回响应的回调函数

    $("#txtSearch").autocomplete({
      source: function(request, response){ response(commands); },
      minLength: 2,
    });
    

    如果 tats 不起作用,请回复,然后我会仔细研究一下。

    【讨论】:

    • 你是个天才。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-18
    • 1970-01-01
    • 2011-04-02
    • 1970-01-01
    • 2018-01-16
    • 2014-11-22
    • 2012-07-11
    相关资源
    最近更新 更多