gpt4 book ai didi

jquery - 具有自定义数据的 Materialisecss 自动完成芯片

转载 作者:行者123 更新时间:2023-12-01 06:32:26 25 4
gpt4 key购买 nike

我正在使用带有自动完成选项的materializecss芯片,并使用ajax设置自动完成数据。该文档显示使用以下语法设置基本标签:

$('.chips-autocomplete').chips({
autocompleteOptions: {
data: {
'Apple': null,
'Microsoft': null,
'Google': null
},
limit: Infinity,
minLength: 1
}
});

但是,当我真正想要使用这些标签时,除了标签名称(例如 id)之外,我还需要一些附加数据,以便我可以执行 PATCH 操作。请求 id field 。我目前无法实现这一目标。

如果我这样做:

autocompleteOptions: {
data: {
'golang': {
tag: 'golang',
id: 1
},
'docker': {
tag: 'docker',
id: 2
},
'kubernetes': {
tag: 'kubernetes',
id: 3
}
},
minLength: 2
},

我的自动完成字段无法正确呈现: enter image description here

此外,onChipAdd回调函数没有接收到芯片的完整数据,只是看起来像:

{
tag: 'golang'
}

是否可以在materializecss中实现这一点?

最佳答案

没有直接的方法。您需要修改该库。自动完成回调总是被替换。

假设您正在使用Materialize v1.0.0和您的自动完成数据对象,

修改下面几行:

6765 => 修改新对象的自动完成回调

this.options.onAutocomplete.call(this, text); //ORIGINAL
//Replace with this
this.options.onAutocomplete.call(this, {text: text, id: parseInt(el[0].dataset.tagId)}); //CUSTOM

6792 => 修改自动完成数据的条目对象

var entry = {
data: data[key],
key: key
};
//Replace with this
var entry = {
data: data[key].img,
key: data[key].tag,
id: data[key].id
};

6814 => 使用修改后的列表项渲染自动完成下拉列表

var $autocompleteOption = $("<li></li>"); //ORIGINAL
//Replace with this
var $autocompleteOption = $("<li data-tag-id="+_entry.id+"></li>"); //CUSTOM

7890 => 设置芯片自动完成回调

_this46.addChip({
tag: val
});
//Replace with this
_this46.addChip({
id: val.id,
tag: val.text,
});

完成!

我也遇到了同样的问题,我是这样解决的。我使用了 <li> 的“data-tag-id”属性传递我的标签的 ID。当您从芯片中获取数据时,您将拥有 tag 属性和 id 属性。

PD:如果你想显示带有图像预览的自动完成功能,你需要像这样设置自动完成数据对象:

data:{ 'key':{tag:'key', img:'url/to/image.png', id: 2} }

希望对您有所帮助:)

关于jquery - 具有自定义数据的 Materialisecss 自动完成芯片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53020061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com