【问题标题】:jQuery autocomplete, pass data-property of field autocomplete is located injQuery自动完成,字段自动完成的传递数据属性位于
【发布时间】:2016-10-06 11:30:31
【问题描述】:

我有一个包含多个自动完成字段的页面。我需要传递自动完成附加到的每个字段的一些额外数据(例如“data-field-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);
        }
    });
}

我需要通过例如“data-field-id”-当前使用字段的 request.x 中的属性。这有可能吗?我在文档中找不到明确的方法..

【问题讨论】:

  • 你是否在 autocompleteFields 中正确获取 DOM 对象?
  • 如果得到正确的值然后 var dataFieldId = autocompleteFields.attr('data-field-id'); request.x = dataFieldId;希望这会奏效。
  • 当有一个自动完成实例但有两个时,这似乎有效,但两者都获得相同的数据字段ID,尽管它在html中不同。
  • 如果不止一个,那么autocompleteFields就是一个数组。然后你需要迭代。

标签: javascript jquery jquery-ui autocomplete


【解决方案1】:

试试这个。它会起作用的。

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);
    }
});
}

【讨论】:

  • 这似乎工作得恰到好处!非常感谢 :) 我之前尝试访问 $(this),但其中没有密钥 [0]。
猜你喜欢
  • 2017-10-23
  • 2013-01-08
  • 2020-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多