Javascript jQuery autocomplete,字段autocomplete的pass data属性位于

Javascript jQuery autocomplete,字段autocomplete的pass data属性位于,javascript,jquery,jquery-ui,autocomplete,Javascript,Jquery,Jquery Ui,Autocomplete,我有一个包含多个自动完成字段的页面。我需要传递自动完成附加到的每个字段的一些附加数据(例如“数据字段id=”X”) 自动完成用“自动完成”类初始化。这些自动完成字段是动态生成的 当前我的代码如下所示: var autocompleteFields = $(".dynamic-fields.autocomplete"); // autocomplete data getter for necessary fields if (autocompleteFields.length > 0) {

我有一个包含多个自动完成字段的页面。我需要传递自动完成附加到的每个字段的一些附加数据(例如“数据字段id=”X”)

自动完成用“自动完成”类初始化。这些自动完成字段是动态生成的

当前我的代码如下所示:

var autocompleteFields = $(".dynamic-fields.autocomplete");

// autocomplete data getter for necessary fields
if (autocompleteFields.length > 0) {
    autocompleteFields.autocomplete({
        source: function (request, response) {
            request.module = 'shared';
            request.page = 'get_autofill_data.php';
            $.ajax({
                url: "ajax.php",
                data: request,
                dataType: "json",
                type: "POST",
                success: function (data) {
                    response(data);
                }
            });
        },
        select: function (event, ui) {
            $(this).val(ui.item.value);
        }
    });
}

我需要在当前使用的字段的request.x中传递例如“data field id”-属性。这可能是某种方式吗?我在文档中找不到一种明确的方法来实现这一点。

试试这个。它会起作用

var autocompleteFields = $(".dynamic-fields.autocomplete");
if (autocompleteFields.length > 0) {
autocompleteFields.autocomplete({
    source: function (request, response) {
        request.module = 'shared';
        request.page = 'get_autofill_data.php';
        request.x = $(this)[0].element.attr('data-field-id')
        $.ajax({
            url: "ajax.php",
            data: request,
            dataType: "json",
            type: "POST",
            success: function (data) {
                response(data);
            }
        });
    },
    select: function (event, ui) {
        $(this).val(ui.item.value);
    }
});
}

试试这个,会有用的

var autocompleteFields = $(".dynamic-fields.autocomplete");
if (autocompleteFields.length > 0) {
autocompleteFields.autocomplete({
    source: function (request, response) {
        request.module = 'shared';
        request.page = 'get_autofill_data.php';
        request.x = $(this)[0].element.attr('data-field-id')
        $.ajax({
            url: "ajax.php",
            data: request,
            dataType: "json",
            type: "POST",
            success: function (data) {
                response(data);
            }
        });
    },
    select: function (event, ui) {
        $(this).val(ui.item.value);
    }
});
}

您是否正确获取了autocompleteFields中的DOM对象?如果获取的值正确,则var dataFieldId=autocompleteFields.attr('data-field-id'));request.x=dataFieldId;希望这能起作用。当有一个自动完成实例时,这似乎能起作用,但有两个实例时,两个实例都会获得相同的数据字段id,尽管它在html中不同。如果不止一个,则自动完成字段是一个数组。然后需要迭代。是否获得DOM对象在autocompleteFields中是否正确?如果获得正确的值,则var dataFieldId=autocompleteFields.attr('data-field-id'));request.x=dataFieldId;希望这能起作用。当有一个自动完成实例时,这似乎能起作用,但对于两个实例,它们都会获得相同的数据字段id,尽管在html中有所不同。如果不止一个,则自动完成字段是一个数组。然后您需要迭代。这似乎很有效!非常感谢:)我尝试访问$(此)较早,但其中没有键[0]。这似乎工作正常!非常感谢:)我较早时尝试访问$(此),但其中没有键[0]。