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 相关文章推荐
使用JavaScript的ActiveXObject对象检测应用程序是否安装的方法
Apr 15 Javascript
与Math.pow 相反的函数使用介绍
Aug 04 Javascript
基于jQuery实现返回顶部实例代码
Jan 01 Javascript
jQuery插件之jQuery.Form.js用法实例分析(附demo示例源码)
Jan 04 Javascript
jQuery+css实现的切换图片功能代码
Jan 27 Javascript
JS实现的跨浏览器解析XML文件实例
Jun 21 Javascript
Vue.js快速入门教程
Sep 07 Javascript
js中获取 table节点各tr及td的内容简单实例
Oct 14 Javascript
vue-cli3.0+element-ui上传组件el-upload的使用
Dec 03 Javascript
vxe-table vue table 表格组件功能
May 26 Javascript
p5.js实现简单货车运动动画
Oct 23 Javascript
k8s node节点重新加入master集群的实现
Feb 22 Javascript
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读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
2012/07/31 PHP
php简单计算页面加载时间的方法
2015/06/19 PHP
javascript 用记忆函数快速计算递归函数
2010/03/15 Javascript
javascript中关于执行环境的杂谈
2011/08/14 Javascript
Javascript引用指针使用介绍
2012/11/07 Javascript
CSS+jQuery实现的一个放大缩小动画效果
2013/09/24 Javascript
js取整数、取余数的方法
2014/05/11 Javascript
深入理解JavaScript编程中的同步与异步机制
2015/06/24 Javascript
详解JavaScript语言的基本语法要求
2015/11/20 Javascript
js制作支付倒计时页面
2016/10/21 Javascript
vue2.0 与 bootstrap datetimepicker的结合使用实例
2017/05/22 Javascript
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
2018/01/25 jQuery
js canvas实现写字动画效果
2018/11/30 Javascript
vue中使用v-model完成组件间的通信
2019/08/22 Javascript
vuex + keep-alive实现tab标签页面缓存功能
2019/10/17 Javascript
解决iview table组件里的 固定列 表格不自适应的问题
2020/11/13 Javascript
[01:19]DOTA2城市挑战赛报名开始 开启你的城市传奇
2018/03/23 DOTA
python设置检查点简单实现代码
2014/07/01 Python
python读取json文件并将数据插入到mongodb的方法
2015/03/23 Python
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
2018/02/23 Python
Python中的上下文管理器和with语句的使用
2018/04/17 Python
python 寻找离散序列极值点的方法
2019/07/10 Python
PyTorch中Tensor的数据统计示例
2020/02/17 Python
解决pyecharts运行后产生的html文件用浏览器打开空白
2020/03/11 Python
详解appium自动化测试工具(monitor、uiautomatorviewer)
2021/01/27 Python
美国知名生活购物网站:Goop
2017/11/03 全球购物
怎么处理XML的中文问题
2015/03/26 面试题
VLAN和VPN有什么区别?分别实现在OSI的第几层?
2014/12/23 面试题
物业保安主管岗位职责
2013/12/25 职场文书
消防安全管理制度
2014/02/01 职场文书
化工专业自荐书
2014/06/16 职场文书
群众路线自我剖析及整改措施
2014/11/04 职场文书
2014年车间工作总结
2014/11/21 职场文书
青年岗位能手事迹材料
2014/12/23 职场文书
Nginx下配置Https证书详细过程
2021/04/01 Servers
基于Pygame实现简单的贪吃蛇游戏
2021/12/06 Python