自动完成(Autocomplete)

自动完成组件可用于快速的为文本框添加Autocomplete功能,目前在FastAdmin1.3.0+版本支持该功能。

使用示例

<input type="text" class="form-control" data-role="autocomplete" data-autocomplete-options='{"url":"ajax/get_user_list"}' />

<input type="text" class="form-control" data-role="autocomplete" data-autocomplete-options='{"url":"ajax/get_user_list", "minChars":2}' />

常用属性

同时我们还可以通过配置data-autocomplete-options属性来自定义Autocomplete的功能
data-autocomplete-options支持以下属性配置:

属性类型描述默认值
urlstring返回查询列表的接口URL
autoSelectFirstbool自动选择第一条结果false
onSelectfunction确认选中以后的回调
onHintfunction选中以后的回调
widthint列表宽度auto
minCharsint开始搜索的最小字符1
maxHeightint列表最高调试300
paramsobject/function自定义参数{}
zIndexint列表的zIndex层级值9999
typestringAjax请求类型get
delimiterstring分隔符null
ajaxSettingsobjectAjax自定义配置{}
noCachebool禁止缓存false
orientationstring列表方向bottom
forceFixPositionbool强制修正列表位置false
如果需要传递function类型属性,例如处理onSelectonHintparams属性,此时我们只能通过在JS中给元素添加参数,不支持使用data-autocomplete-options的方式,如
$("#test1").data("autocomplete-options", {
    "url":"ajax/get_user_list", 
    "minChars":2,
    "onSelect":function(){
        //处理回调事件
    },
    "params": function(){
        //动态传递参数
        return {"a":1,"b":2};
    }
});

Ajax返回值

Ajax返回值必须是JSON类型,格式如下:

{
    "query": "iPhone",
    "suggestions": [
        { "value": "iPhone 11", "data": "iphone11" },
        { "value": "iPhone 12",       "data": "iphone12" },
        { "value": "iPhone XR",        "data": "iphonexr" }
    ]
}

也可以是以下的数据格式:

{
    "query": "iPhone",
    "suggestions": ["iphone11", "iphone12", "iphone13"]
}

整合标签输入

Autocomplete组件还可以与标签输入无缝整合,实现标签输入的自动提示,具体请参考标签输入章节文档

特别感谢

Autocomplete组件使用开源组件:https://github.com/devbridge/jQuery-Autocomplete

文档最后更新时间:2023-10-27 16:42:13
著作权归应用插件开发者所有,未经许可,禁止转载、复制此文档的任何内容。