表单/表格

Bootstrap tagsinput自定义标签插件

阿里云


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

使用方法

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

也想出现在这里?联系我们
创客主机
  1. <link href="bootstrap.css" rel="stylesheet">
  2. <link href="tagsinput.css" rel="stylesheet">
  3. <script src="jquery.min.js"></script>
  4. <script src="bootstrap.min.js"></script>
  5. <script src="typehead.min.js"></script>
  6. <script src="tagsinput.js"></script>

HTML 结构

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

  1. <input type="text" data-role="tagsinput" value="jQuery,Script,Net">

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

  1. <select multiple data-role="tagsinput">
  2.   <option value="jQuery">jQuery</option>
  3.   <option value="Angular">Angular</option>
  4.   <option value="React">React</option>
  5.   <option value="Vue">Vue</option>
  6. </select>

初始化插件

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

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

配置参数

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

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

1
2
3
$('input').tagsinput({
  tagClass: 'big'
});
1
2
3
4
5
$('input').tagsinput({
  tagClass: function(item) {
    return (item.length > 10 ? 'big' : 'small');
  }
});
itemValue 当使用对象作为标签时,itemValue 属性用于指明标签值的属性名称。

1
2
3
$('input').tagsinput({
    itemValue: 'id'
});
1
2
3
4
5
$('input').tagsinput({
  itemValue: function(item) {
    return item.id;
  }
});
itemText 当使用对象作为标签时,itemText 属性用于指明标签名称的属性名称。

1
2
3
$('input').tagsinput({
  itemText: 'label'
});
1
2
3
4
5
$('input').tagsinput({
  itemText: function(item) {
    return item.label;
  }
});
confirmKeys 用于在输入框输入标签时通过什么按键来输出标签。默认为[13, 188],代表回车和 comma 键。

1
2
3
$('input').tagsinput({
  confirmKeys: [13, 44]
});
maxTags 输入标签的最大数量。(如果设置了该参数)

1
2
3
$('input').tagsinput({
  maxTags: 3
});
maxChars 单个标签的最大字符数。(如果设置了该参数)。默认为undefined

1
2
3
$('input').tagsinput({
   maxChars: 8
});
trimValue 如果设置为true,会自动删除标签首尾的空白。默认为false

1
2
3
$('input').tagsinput({
   trimValue: true
});
allowDuplicates 如果设置为true,可以输入相同的标签。默认为false

1
2
3
$('input').tagsinput({
  allowDuplicates: true
});
focusClass 当输入框获得焦点时,参数指定的 class 会被应用到容器上。

1
2
3
$('input').tagsinput({
  focusClass: 'my-focus-class'
});
freeInput 允许不同该 typeahead 的数据源来创建标签。默认为true

1
2
3
4
5
6
$('input').tagsinput({
  typeahead: {
    source: ['Amsterdam', 'Washington', 'Sydney', 'Beijing', 'Cairo']
  },
  freeInput: true
});
typeahead typeahead 对象。

1
2
3
4
5
$('input').tagsinput({
  typeahead: {
    source: ['Amsterdam', 'Washington', 'Sydney', 'Beijing', 'Cairo']
  }
});
1
2
3
4
5
6
7
$('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).

1
2
3
$('input').tagsinput({
  cancelConfirmKeysOnEmpty: true
});
onTagExists 当视图添加一个已经存在的标签时的回调函数。默认是存在的标签隐藏然后淡入显示。

1
2
3
4
5
$('input').tagsinput({
  onTagExists: function(item, $tag) {
    $tag.hide().fadeIn();
  }
});

方法

该 Bootstrap tagsinput 自定义标签插件的可用方法有:
add:添加一个标签。

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

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

  1. $('input').tagsinput('add', 'some tag', {preventPost: true});
  2.     $('#tags-input').on('beforeItemAdd', function(event) {
  3.        var tag = event.item;
  4.        // Do some processing here
  5.  
  6.        if (!event.options || !event.options.preventPost) {
  7.           $.ajax('/ajax-url', ajaxData, function(response) {
  8.              if (response.failure) {
  9.                 // Remove the tag since there was a failure
  10.                 // "preventPost" here will stop this ajax call from running when the tag is removed
  11.                 $('#tags-input').tagsinput('remove', tag, {preventPost: true});
  12.              }
  13.           });
  14.        }
  15.     });

remove:删除一个标签。

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

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

  1. $('input').tagsinput('remove', 'some tag', {preventPost: true});
  2.     $('#tags-input').on('beforeItemRemove', function(event) {
  3.        var tag = event.item;
  4.        // Do some processing here
  5.  
  6.        if (!event.options || !event.options.preventPost) {
  7.           $.ajax('/ajax-url', ajaxData, function(response) {
  8.              if (response.failure) {
  9.                 // Re-add the tag since there was a failure
  10.                 // "preventPost" here will stop this ajax call from running when the tag is added
  11.                 $('#tags-input').tagsinput('add', tag, {preventPost: true});
  12.              }
  13.           });
  14.        }
  15.     });

removeAll:删除所有的标签。

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

focus:使标签输入框聚焦。

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

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

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

refresh:刷新标签输入框。

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

destroy:销毁插件。

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

事件

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

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

  1. $('input').on('itemAddedOnInit', function(event) {
  2.       // event.item: contains the item
  3.     });

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

  1. $('input').on('beforeItemAdd', function(event) {
  2.       // event.item: contains the item
  3.       // event.cancel: set to true to prevent the item getting added
  4.     });

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

  1. $('input').on('itemAdded', function(event) {
  2.       // event.item: contains the item
  3.     });

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

  1. $('input').on('beforeItemRemove', function(event) {
  2.       // event.item: contains the item
  3.       // event.cancel: set to true to prevent the item getting removed
  4.     });

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

  1. $('input').on('itemRemoved', function(event) {
  2.       // event.item: contains the item
  3.     });

Github 地址:https://github.com/Nodws/bootstrap4-tagsinput

Bootstrap tagsinput 自定义标签插件

已有 1100 人购买
查看演示升级 VIP立刻购买

演示地址 下载地址
收藏
(6)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!