这个名字我很感冒,因为它的效果和名字不符合。应该叫智能提示词仓库

看图你就知道效果了。

自动完成标签_添加属性

 

初始化:

1、Data属性:input添加属性data-toggle="tags"

没有出现效果,具体用到补上来。

 

前面因为版本问题死活不出效果,现在成功出效果了,补上。

 

自动完成标签这个名字确实有点问题,这个的功能就是生成标签。

什么是标签?

自动完成标签_json_02

这个样子,就是一个类似span的东西,存储了一些值。

自动完成标签的组件做到的就是:

一:最上面图中的ajax智能提示效果

二:生成标签

 

自动完成标签的组件的使用:

1、Data属性:input添加属性data-toggle="tags"

<input type="text" name="tags" value="" data-toggle="tags" data-url="jsp/ajaxTags.html" data-width="360" size="15" placeholder="输入关键字,回车提交">

2、jqueryAPI

$(input).tags(options)

例子:

 <script type="text/javascript">
          $(function(){
            $("#autocreat").tags({url:'jsp/ajaxTags.html',width:'360',clear:true});
          });
        </script>
        <input type="text" id="autocreat" size="15" placeholder="输入关键字,回车提交">

 

参数(options)

名称 类型 默认值 描述
url string null 【必选】D-Url ajax加载内容的URL
type string GET 【可选】ajax请求方式
tagname string tag 【可选】标签隐藏域的name
max int 0 【可选】允许插入几个标签,0=不限
clear boolean false 【可选】如果ajax无返回或未在下拉菜单中选择,是否清除输入字符
lightCls string tag-highlight 【可选】标签选择菜单的高亮Class
width int 300 【可选】标签区域的宽度,超过将自动换行

返回JSON参数(Ajax请求URL的返回JSON)

名称 类型 默认值 描述
value string null 【必选】标签的值
label string null 【必选】标签的显示名称

我再例子中url指向的是一个html,框架会将html中的所有内容都ajax过来,所以我将html的内容写成了这样:

[
    { "id": "01", "label": "中国", "value": "China" },
    { "id": "02", "label": "日本", "value": "Jpan" },
    { "id": "03", "label": "韩国", "value": "Korea" }
]

如果实际开发中,应该url对应的是一个action或者servlet等,注意返回数据的格式一定是json格式,该有的参数一定要有就ok了。

 

事件

事件名称 中文说明 描述
aftercreated.bjui.tags 标签创建后的事件 监听该事件,可以在创建好一个标签后进行相关操作

这样监听tags的事件:mytags-selector表示触发自动完成标签的input选择器

$('mytags - selector').on('aftercreated.bjui.tags', function(e, data) {
    var value = data.value // 当前创建的标签值
    var item  = data.item  // 当前选定项的值(object,具体值由返回JSON决定)
    var tags  = data.tags  // 所有已生成标签的值,以英文逗号(,)分隔
    
    // do something...
})