javascript - Kendo 自动完成 Jquery 插件错误

标签 javascript jquery kendo-ui kendo-autocomplete

我的 HTML 是

  <input type="text" id="id-5505Name" name="id-5505Name" value=" "  class="autocomplete"/> 
  <input type="text" id="id-2333Name" name="id-2333Name" value=" "  class="autocomplete"/>
  <input type="text" id="id-2323Name" name="id-2323Name" value=" "  class="autocomplete"/>
  <input type="text" id="id-2322Name" name="id-2322Name" value=" "  class="autocomplete"/>

我的 JQuery 脚本

   $(".autocomplete").kendoAutoComplete({
        minLength: 2, ignoreCase: true, placeholder: "Start typing...",
        filter: 'contains', suggest: true,
        dataTextField: "name",
        dataValueField: 'id',
        dataSource: {
            type: "json",
            serverFiltering: true,
            transport: {
                read: "PatientFileUpload/loaddrugname", parameterMap: function () { 
                    return {
                        startsWith: $(this).data("kendoAutoComplete").value()
                    };
                },
                success: function (response) {
                    o.success(response);
                }
            }
        }, select: function (e) {
            var item = e.item;
            var DataItem = this.dataItem(e.item.index());
            alert('Name : ' + DataItem.name + ', Id : ' + DataItem.id);
            }
    });

我的问题是:

在前面的代码中,我无法访问 parameterMap 函数中的 $(this) 对象,因此我需要访问当前对象并且无法更改JQuery 选择器('.autocompelete')并且我无法使用 Id 选择器...任何想法

最佳答案

使用闭包:

$(".autocomplete").each(function() {
    var that = this;

    $(this).kendoAutoComplete({
       minLength: 2,
       ignoreCase: true,
       placeholder: "Start typing...",
       filter: 'contains',
       suggest: true,
       dataTextField: "name",
       dataValueField: 'id',
       dataSource: {
           type: "json",
           serverFiltering: true,
           transport: {
               read: "PatientFileUpload/loaddrugname",
               parameterMap: function () {
                   return {
                       startsWith: $(that).data("kendoAutoComplete").value()
                   };
               },
               success: function (response) {
                   o.success(response);
               }
           }
       },
       select: function (e) {
           var item = e.item;
           var DataItem = this.dataItem(e.item.index());
           alert('Name : ' + DataItem.name + ', Id : ' + DataItem.id);
       }
   });
});

关于javascript - Kendo 自动完成 Jquery 插件错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21802089/

相关文章:

javascript - $.ajax 等待完成而不挂起 UI

javascript - 为什么我的 map 函数没有返回 d3 js 中的所有 csv 文件行?

javascript - 如何防止在 iframe 中浏览时打开新选项卡或窗口

Ruby selenium/capybara 等待元素消失

asp.net-mvc - MVC 中的 Kendo UI 网格,带有条件自定义命令按钮

javascript - 仅针对选中复选框的行从行中选择数据属性

javascript - 使用imacros提取特殊文本类型

jquery - Tizen 动态列表不可通过滚轮滚动

php - 表单提交前保存数据

javascript - 包含 Kendo Grid 事件的外部 Javascript 文件