0

好吧,我只是在服务器端使用 VB.net 实现 jquery-ui-autocomplete,但这是因为我遵循了一个示例,有没有人可以尝试解释(对于傻瓜)它是如何工作的?,我不知道的部分关于它是在返回(成功事件):

$("#kSerial").autocomplete({
           source: function (request, response) {
               dataFromServer = "";
               $.ajax({
                   type: "POST",
                   url: URL + 'regresaSeriales',
                   async: false,
                   contentType: "application/json; charset=utf-8",
                   data: "{" + "'serial':'" + request.term + "'" + "}",
                   dataType: "json",
                   success: function (msg) {

                       /*This is the part I just don't get it*/                        

                       response($.map(msg.d, function (item) {
                           return {
                               value: item.serial
                           };
                       }));

                     /*and ends here*/

                   },
                   error: function () {

                       serial = 0;

                   }

               })

           },

在我的服务器端,我返回一个“串行”对象列表(List(of T)),它工作正常。

我只是按照一个示例并适应了我的服务器端代码,但我不知道返回部分是如何工作的,我的意思是我理解“源”属性接受回调,但无法实现它是如何工作的ajax请求成功事件中的代码。

事实上,我没有得到回调中 2 个参数的原因,尤其是“请求”,(请求,响应)。

这是我基于我的代码的教程: http: //www.dotnetcurry.com/ShowArticle.aspx?ID=515

4

1 回答 1

2

它获取响应数据,获取d对象属性(一个数组),对其进行迭代,并为该数组中的每个项目创建一个具有value该项目属性的serial属性的对象。

$.map调用将所有这些对象放入一个数组中并将其发送到response函数(自动完成插件的 IIRC 部分,用于吐出完成)。

request参数只是一个包含搜索词或“文本输入中的内容”的对象。这在自动完成概述文档中有所描述。

于 2012-05-14T16:19:08.473 回答