如何在 jquery.autocomplete 函数中获取对调用控件的引用

How to get reference to calling control in jquery.autocomplete function

我有一个包含多个文本条目的 MVC 页面。页面上的控件都是数据驱动的。我所做的是用 class="ACBox" 标记每个自动完成输入。他们都有自己的ID。我还添加了一个名为 fname 的自定义属性,其中 fname 是字段标识符。 fname 可以是 "size"、"color"、"connectionpoints" 等(可能很多)

我想做的是,使用一个自动完成功能对我的控制器进行 ajax 调用,并将控件的 fname 传回我的函数return 适当的可能列表。

但是,我找不到一种方法来获取对调用对象的引用以供自动完成读取 fname 属性。我当前的解决方案如下,当我在 GetOptionsFromField 中检查时,pfield 为 Nothing。

有没有办法设置pfield?或者,我可以使用 this.id 设置为 pfield。

$(".ACBox").autocomplete({
        source: function (request, response) {
            $.ajax({
                url: "@Url.Action("GetOptionsFromField", "ControllerX")",
                dataType: "json",
                data: {
                    pfield: $(this).attr("fname")
                },
                success: function (data) {
                    response(data);
                }
            });
          },
        minlength: 5,
        open: function () {
            $(this).removeClass("ui-corner-all").addClass("ui-corner-top");
        },
        close: function () {
            $(this).removeClass("ui-corner-top").addClass("ui-corner-all");
        }

    });

好的,看来我需要更好地搜索。这是在 2014 年回答的,with this question.

我用

$(this.element).data("colname")

它就像一个魅力。