tagsinput是一款基于Bootstrap的自定义标签插件。该自定义标签插件提供api接口,可以将input和select元素转换为标签。并能和typehead.js插件结合,提供查询提示信息。

tagsinput.js自定义标签插件支持bootstrap 3 和 bootstrap 4。

使用方法

在页面中引入jquery和bootstrap相关文件 ,以及tagsinput.css和tagsinput.js文件。

HTML结构

使用作为标签时,只需要添加data-role="tagsinput"属性即可。

使用元素作为标签时,需要添加multiple data-role="tagsinput"属性。

jQuery

Angular

React

Vue

初始化插件

你也可以动态的为input元添加标签。

$('input').tagsinput('add', { "value": 1 , "text": "jQuery"});

$('input').tagsinput('add', { "value": 2, "text": "Script"});

$('input').tagsinput('add', { "value": 3, "text": "Net"});

配置参数

该响应式圆形js轮播图插件的可用配置参数如下:

参数

描述

tagClass

标签的class名称,获者是一个返回classname的函数。

$('input').tagsinput({

tagClass: 'big'

});

$('input').tagsinput({

tagClass: function(item) {

return (item.length > 10 ? 'big' : 'small');

}

});

itemValue

当使用对象作为标签时,itemValue属性用于指明标签值的属性名称。

$('input').tagsinput({

itemValue: 'id'

});

$('input').tagsinput({

itemValue: function(item) {

return item.id;

}

});

itemText

当使用对象作为标签时,itemText属性用于指明标签名称的属性名称。

$('input').tagsinput({

itemText: 'label'

});

$('input').tagsinput({

itemText: function(item) {

return item.label;

}

});

confirmKeys

用于在输入框输入标签时通过什么按键来输出标签。默认为[13, 188],代表回车和comma键。

$('input').tagsinput({

confirmKeys: [13, 44]

});

maxTags

输入标签的最大数量。(如果设置了该参数)

$('input').tagsinput({

maxTags: 3

});

maxChars

单个标签的最大字符数。(如果设置了该参数)。默认为undefined

$('input').tagsinput({

maxChars: 8

});

trimValue

如果设置为true,会自动删除标签首尾的空白。默认为false

$('input').tagsinput({

trimValue: true

});

allowDuplicates

如果设置为true,可以输入相同的标签。默认为false

$('input').tagsinput({

allowDuplicates: true

});

focusClass

当输入框获得焦点时,参数指定的class会被应用到容器上。

$('input').tagsinput({

focusClass: 'my-focus-class'

});

freeInput

允许不同该typeahead的数据源来创建标签。默认为true

$('input').tagsinput({

typeahead: {

source: ['Amsterdam', 'Washington', 'Sydney', 'Beijing', 'Cairo']

},

freeInput: true

});

typeahead

typeahead对象。

$('input').tagsinput({

typeahead: {

source: ['Amsterdam', 'Washington', 'Sydney', 'Beijing', 'Cairo']

}

});

$('input').tagsinput({

typeahead: {

source: function(query) {

return $.get('http://someservice.com');

}

}

});

cancelConfirmKeysOnEmpty

Boolean value controlling whether form submissions get processed when pressing enter in a field converted to a tagsinput (default: false).

$('input').tagsinput({

cancelConfirmKeysOnEmpty: true

});

onTagExists

当视图添加一个已经存在的标签时的回调函数。默认是存在的标签隐藏然后淡入显示。

$('input').tagsinput({

onTagExists: function(item, $tag) {

$tag.hide().fadeIn();

}

});

方法

该Bootstrap tagsinput自定义标签插件的可用方法有:

add:添加一个标签。

$('input').tagsinput('add', 'some tag');

$('input').tagsinput('add', { id: 1, text: 'some tag' });

你还可以添加第三个参数来控制添加标签的方法:

$('input').tagsinput('add', 'some tag', {preventPost: true});

$('#tags-input').on('beforeItemAdd', function(event) {

var tag = event.item;

// Do some processing here

if (!event.options || !event.options.preventPost) {

$.ajax('/ajax-url', ajaxData, function(response) {

if (response.failure) {

// Remove the tag since there was a failure

// "preventPost" here will stop this ajax call from running when the tag is removed

$('#tags-input').tagsinput('remove', tag, {preventPost: true});

}

});

}

});

remove:删除一个标签。

$('input').tagsinput('remove', 'some tag');

$('input').tagsinput('remove', { id: 1, text: 'some tag' });

你还可以添加第三个参数来控制删除标签的方法:

$('input').tagsinput('remove', 'some tag', {preventPost: true});

$('#tags-input').on('beforeItemRemove', function(event) {

var tag = event.item;

// Do some processing here

if (!event.options || !event.options.preventPost) {

$.ajax('/ajax-url', ajaxData, function(response) {

if (response.failure) {

// Re-add the tag since there was a failure

// "preventPost" here will stop this ajax call from running when the tag is added

$('#tags-input').tagsinput('add', tag, {preventPost: true});

}

});

}

});

removeAll:删除所有的标签。

$('input').tagsinput('removeAll');

focus:使标签输入框聚焦。

$('input').tagsinput('focus');

input:获取标签输入框对象。

var $elt = $('input').tagsinput('input');

refresh:刷新标签输入框。

$('input').tagsinput('refresh');

destroy:销毁插件。

$('input').tagsinput('destroy');

事件

该Bootstrap的标签输入框插件的可用事件有:

itemAddedOnInit:在初始化时,预加载的标签会触发该事件。

$('input').on('itemAddedOnInit', function(event) {

// event.item: contains the item

});

beforeItemAdd:在添加一个标签之前会触发该事件。

$('input').on('beforeItemAdd', function(event) {

// event.item: contains the item

// event.cancel: set to true to prevent the item getting added

});

itemAdded:添加一个标签时会触发该事件。

$('input').on('itemAdded', function(event) {

// event.item: contains the item

});

beforeItemRemove:在删除一个标签之前会触发该事件。

$('input').on('beforeItemRemove', function(event) {

// event.item: contains the item

// event.cancel: set to true to prevent the item getting removed

});

itemRemoved:删除一个标签时会触发该事件。

$('input').on('itemRemoved', function(event) {

// event.item: contains the item

});

html5自定义标签库,Bootstrap tagsinput自定义标签插件相关推荐

  1. 如何使用HTML5,JavaScript和Bootstrap构建自定义文件上传器

    by Prashant Yadav 通过Prashant Yadav 如何使用HTML5,JavaScript和Bootstrap构建自定义文件上传器 (How to build a custom f ...

  2. JSTL标签库 | 深入解析JSTL标签库

    目录 一:深入解析JSTL标签库 1.什么是JSTL标签库 2.使用JSTL标签库的步骤 3.JSTL标签的原理 4.jstl中的核心标签库core当中常用的标签 一:深入解析JSTL标签库 1.什么 ...

  3. JSP标签库Taglib之自定义function篇,轻松实现日期格式化

    一.什么是Taglib? 如果你曾使用JSP页面来作为渲染视图的话,我相信你对JSTL标签库一定不会感到陌生. 比如: 1.forEach代码片段 <c:forEach var="i& ...

  4. html 的c标签库,jstl C标准标签库Ⅰ

    1. 库:Core(核心库) 前缀:c 描述:标签是一个最常用的标签,用于在JSP中显示数据.它的作用是用来替代通过JSP内置对象out或者标签来输出对象的值. 语法: 没有Body时的语法 有Bod ...

  5. bboss标签库使用大全-逻辑标签使用介绍

    bbossgroups标签库使用大全(续),接上篇<bbossgroups标签库使用大全>,本片重点介绍逻辑标签的使用.同样在使用的时候需要在jsp页头中倒入标签定义文件tld: Html ...

  6. html标签库大全,HTML的标签大全.

    用户提问 我想学习一些关于网页设计的一些知识,当然最基础的HTML语言也是我要学习的东西,我现在只了解一些最基本的东西.我打开一些大的网站,比如网易,查看它的原文件.有很多HTML中的标签看不明白是什 ...

  7. 学会怎样使用Jsp 内置标签、jstl标签库及自定义标签

    学习jsp不得不学习jsp标签,一般来说,对于一个jsp开发者,可以理解为jsp页面中出现的java代码越少,对jsp的掌握就越好,而替换掉java代码的重要方式就是使用jsp标签.  jsp标签的分 ...

  8. [JSP]自定义标签库taglib

    自定义标签的步骤 自定义标签的步骤大概有三步: 1.继承javax.servlet.jsp.tagext.*下提供的几个标签类,如Tag.TagSupport.BodyTagSupport.Simpl ...

  9. java 自定义taglib_[JSP]自定义标签库taglib

    自定义标签的步骤大概有三步: 1.继承javax.servlet.jsp.tagext.*下提供的几个标签类,如Tag.TagSupport.BodyTagSupport.SimpleTagSuppo ...

最新文章

  1. 近期活动盘点:数据标准化及治理大会、IBM苏中讲座、产业创新交流会、企业走访和数据法学征稿(11.6-11.12)
  2. POJ C程序设计进阶 编程题#3:运算符判定
  3. iOS Hacker 使用Reveal分析App的UI界面
  4. SAP CRM的数据库表CRMD_PRICING
  5. android按钮响应事件吗,Android 按钮响应事件的几种方式
  6. 服务器cpu_服务器CPU与GPU协同运算加速三巨头竞争
  7. win10无限重启_win10系统安装无限循环如何解决_win10教程
  8. DES加密解密算法(前端后端)
  9. js array 删除指定元素_Array 原型方法源码实现解密
  10. UE4 Slate Architecture
  11. 爱国者MID产品介绍
  12. Flink1.13.0 + Hudi 0.11.1 + Hive2.1.1 + presto0.273.3 + yanagishima 18.0
  13. 基于java中国跳棋游戏
  14. Tomcat服务器response header 200 OK问题
  15. mfc chartctrl 饼状图编写_南瓜糯米饼:外酥里糯,吃到嘴巴里,真是舌尖上的享受...
  16. 记一次硬盘坏道问题的处理
  17. 用python画皮卡丘画法-用python画一只可爱的皮卡丘实例
  18. 使用cmd安装python的matplotlib库
  19. 修改文件与文件提交--乐字节Java
  20. Qt国际化出错导致汉化不完全

热门文章

  1. CubieBoard install Ubuntu on NAND+SATA
  2. 小程序中图片宽度实现100%,高度自适应
  3. 删除后别人的微信号变成wxid_怎样找回删除的微信好友?不用ROOT不用数据恢复软件!而且免费!...
  4. canon镜头串口控制_佳能常规镜头和L系列镜头有什么区别,您应该购买哪个
  5. 【转】关于SHSH破解
  6. MIDI文件格式解析
  7. 搭建webservice环境,测试本地WSDL接口
  8. 教宝宝使用水杯的正确方法
  9. Windows、mac安装测试版IPA的相关步骤
  10. 服务器系统log文件在哪,云服务器日志在哪里