jQuery Tags Input Plugin(添加/删除标签插件)详解


Posted in Javascript onJune 20, 2016

看名字应该知道是干嘛用了吧。

一个jquery开发的标签功能加强插件,可以生成或删除标签,还能对输入重复标签进行检查,和JQuery autocomplete插件配合实现自动完成功能。

官网:http://xoxco.com/projects/code/tagsinput/

截图:

jQuery Tags Input Plugin(添加/删除标签插件)详解

(下面是翻译了官网上的用法,英文不是很好,有能力的尽量看官网吧)

首先,引用下面两个文件

<script src="jquery.tagsinput.js"></script>
<link rel="stylesheet" type="text/css" href="jquery.tagsinput.css" />

在你的表单里创建一个包含tags列表的input输入框,你可以在value里设置默认或目前有的tags,并用逗号隔开。

<input name="tags" id="tags" value="foo,bar,baz" />

然后,简单地给任何一个输入标签调用tagsInput()函数,它便会被当作一个tags列表处理

$('#tags').tagsInput();

如果你想使用jQuery.autocomalete(自动完成插件)配合使用,那么在函数里增加一个带autocomplete url的参数。

$('#tags').tagsInput({
 autocomplete_url:'http://myserver.com/api/autocomplete'
});

如果你使用了bassistance.de这个网站上的jQuery.autocomplete插件,还可以增加额外的参数来加强autocomplete插件,就像下面描述的这样。

$('#tags').tagsInput({ 
 autocomplete_url:'http://myserver.com/api/autocomplete',
 autocomplete:{selectFirst:true,width:'100px',autoFill:true}
});

PS:需要注意的是,demo里默认用的是jquery ui autocomplete,如果你想要测试jquery.autocomplete,要把头部被注释掉的引用文件去掉注释,并将$('#tags').tagsInput({})中autocomplete_url的地址改为相应的jquery.autocomplete的文件。具体看页面上有说明。

你还可以使用addTag() and removeTag()函数增加和删除掉标签,如以下:

$('#tags').addTag('foo');
$('#tags').removeTag('bar');

你还可以用imporTags()方法导进一组tag列表,需要注意的是这样会将value里设置的默认tag替换掉

$('#tags').importTags('foo,bar,baz');

所以如果importTags()里不带值的话,就是重置input里的标签值(注意引号要保留,可以理解为给它传空值。)

$('#tags').importTags('');

可以使用tagExist()判断一个标签是否存在:

if ($('#tags').tagExist('foo')) { ... }

如果想要在增加或移除掉标签的时候增加额外的功能或触发其它动作,你可以通过onAddTag和onRemoveTag这两个参数里指定回调函。这两个函数都返回了一个标签值作为参数(原文: Both functions should accept a single tag as the parameter.)

$('#tags_1').tagsInput({
 width:'auto',
 onAddTag:function(tag){
  console.log('增加了'+tag)
 },
 onRemoveTag:function(tag){
  console.log('删除了'+tag)
 }
});

如果你想禁止增加标签,或者你想提供其它交互方式增加标签,可以增加一个值为false的interactive参数,这样就禁止了增加标签,而其它的功能和呈现都跟原来一样。

$('#tags_1').tagsInput({
 width:'auto',
 onRemoveTag:function(tag){
  console.log('remover'+'"'+tag+'"')
 },
 interactive:false
});

如果你想要在每次增加/删除一个标签的时候调用一个函数,可以增加onChange的参数,并设置回调函数

默认情况下,如果鼠标位于一个标签后面,按退格键会删除掉那个标签。如果你想禁止这个,设置removeWithBackspace参数为false即可。

参数:

$(selector).tagsInput({
 'autocomplete_url': url_to_autocomplete_api, //自动完成插件的文件地址,demo里有说明
 'autocomplete': { option: value, option: value}, //自动完成插件的参数,demo有说明。(提供个jquery.autocomplete的:http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/)
 'height':'100px', //设置高度
 'width':'300px', //设置宽度
 'interactive':true, //是否允许添加标签,false为阻止
 'defaultText':'add a tag', //默认文字
 'onAddTag':callback_function, //增加标签的回调函数
 'onRemoveTag':callback_function, //删除标签的回调函数
 'onChange' : callback_function, //改变一个标签时的回调函数
 'removeWithBackspace' : true, //是否允许使用退格键删除前面的标签,false为阻止
 'minChars' : 0, //每个标签的小最字符
 'maxChars' : 0 //每个标签的最大字符,如果不设置或者为0,就是无限大
 'placeholderColor' : '#666666' //设置defaultText的颜色
});

以上就是本文的全部内容,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
快速保存网页中所有图片的方法
Jun 23 Javascript
Javascript document.referrer判断访客来源网址
May 15 Javascript
使用JQ来编写最基本的淡入淡出效果附演示动画
Oct 31 Javascript
Jquery判断radio、selelct、checkbox是否选中及获取选中值方法总结
Apr 15 Javascript
jquery实现不包含当前项的选择器实例
Jun 25 Javascript
AngularJS 工作原理详解
Aug 18 Javascript
jQuery时间验证和转换为标准格式的时间格式
Mar 06 Javascript
vue双花括号的使用方法 附练习题
Nov 07 Javascript
vue cli2.0单页面title修改方法
Jun 07 Javascript
JavaScript类的继承方法小结【组合继承分析】
Jul 11 Javascript
vue倒计时刷新页面不会从头开始的解决方法
Mar 03 Javascript
详解Vue的options
May 15 Vue.js
javascript实现随机生成DIV背景色
Jun 20 #Javascript
使用jQuery Rotare实现微信大转盘抽奖功能
Jun 20 #Javascript
JS实现弹出居中的模式窗口示例
Jun 20 #Javascript
jQuery筛选数组之grep、each、inArray、map的用法及遍历json对象
Jun 20 #Javascript
解决jQuery ajax请求在IE6中莫名中断的问题
Jun 20 #Javascript
indexedDB bootstrap angularjs之 MVC DOMO (应用示例)
Jun 20 #Javascript
JS控制层作圆周运动的方法
Jun 20 #Javascript
You might like
php 8小时时间差的解决方法小结
2009/12/22 PHP
JavaScript 编程引入命名空间的方法与代码
2007/08/13 Javascript
网页加载时页面显示进度条加载完成之后显示网页内容
2012/12/23 Javascript
setTimeout函数兼容各主流浏览器运行执行效果实例
2013/06/13 Javascript
JS获得URL超链接的参数值实例代码
2013/06/21 Javascript
jquery获取一个元素下面相同子元素的个数代码
2014/07/31 Javascript
javascript背景时钟实现方法
2015/06/18 Javascript
IE10中flexigrid无法显示数据的解决方法
2015/07/26 Javascript
学习JavaScript设计模式之策略模式
2016/01/12 Javascript
jquery设置css样式的多种方法(总结)
2017/02/21 Javascript
ionic2自定义cordova插件开发以及使用(Android)
2017/06/19 Javascript
JavaScript实现图片切换效果
2017/08/12 Javascript
vue.js2.0点击获取自己的属性和jquery方法
2018/02/23 jQuery
vue项目中使用ueditor的实例讲解
2018/03/05 Javascript
vue 注册组件的使用详解
2018/05/05 Javascript
vue代理和跨域问题的解决
2018/07/18 Javascript
Vue项目路由刷新的实现代码
2019/04/17 Javascript
[02:11]2016国际邀请赛中国区预选赛最美TA采访现场玩家
2016/06/28 DOTA
python使用Matplotlib画条形图
2020/03/25 Python
用Python编写一个简单的CS架构后门的方法
2018/11/20 Python
Python datetime包函数简单介绍
2019/08/28 Python
Eclipse配置python默认头过程图解
2020/04/26 Python
浅析Python迭代器的高级用法
2020/07/16 Python
python通用数据库操作工具 pydbclib的使用简介
2020/12/21 Python
CSS3哪些新特性值得称赞
2016/03/02 HTML / CSS
美国彩妆品牌:Coastal Scents
2017/04/01 全球购物
澳大利亚窗帘商店:Curtain Wonderland
2019/12/01 全球购物
SQL面试题
2013/12/09 面试题
名词解释型面试题(主要是网络)
2013/12/27 面试题
日语专业个人求职信范文
2014/02/02 职场文书
《称象》教学反思
2014/04/25 职场文书
税务干部个人整改措施思想汇报
2014/10/10 职场文书
节约用水广告语60条
2019/11/14 职场文书
Python 实现定积分与二重定积分的操作
2021/05/26 Python
CSS中妙用 drop-shadow 实现线条光影效果
2021/11/11 HTML / CSS
生命的关键成分来自太空?陨石说是的
2022/04/29 数码科技