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 相关文章推荐
js自定义方法通过隐藏iframe实现文件下载
Feb 21 Javascript
jquery获取一组checkbox的值(实例代码)
Nov 04 Javascript
jquery 获取dom固定元素 添加样式的简单实例
Feb 04 Javascript
javascript数据类型示例分享
Jan 19 Javascript
javascript实现简单的贪吃蛇游戏
Mar 31 Javascript
JavaScript实现文本框中默认显示背景图片在获得焦点后消失的方法
Jul 01 Javascript
js只执行1次的函数示例
Jul 20 Javascript
Parcel.js + Vue 2.x 极速零配置打包体验教程
Dec 24 Javascript
layer弹出层全屏及关闭方法
Aug 17 Javascript
一文读懂ES7中的javascript修饰器
May 06 Javascript
Vue代码整洁之去重方法整理
Aug 06 Javascript
JavaScript利用键盘码控制div移动
Mar 19 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表单转换textarea换行符的方法
2010/09/10 PHP
纯php生成随机密码
2015/10/30 PHP
PHP实现获取第一个中文首字母并进行排序的方法
2017/05/09 PHP
详解php框架Yaf路由重写
2017/06/20 PHP
PHP使用mongoclient简单操作mongodb数据库示例
2019/02/08 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
Javascript 写的简单进度条控件
2008/01/22 Javascript
IE浏览器兼容Firefox的JS脚本的代码
2008/10/23 Javascript
JavaScript null和undefined区别分析
2009/10/14 Javascript
Jquery easyui 下loaing效果示例代码
2013/08/12 Javascript
jQuery采用连缀写法实现的折叠菜单效果
2015/09/18 Javascript
jQuery基于排序功能实现上移、下移的方法
2016/11/26 Javascript
js实现漫天星星效果
2017/01/19 Javascript
javascript 作用于作用域链的详解
2017/09/27 Javascript
js实现数组内数据的上移和下移的实例
2017/11/14 Javascript
bootstrap+jquery项目引入文件报错的解决方法
2018/01/22 jQuery
nodeJS进程管理器pm2的使用
2019/01/09 NodeJs
[09:13]DOTA2-DPC中国联赛 正赛 Ehome vs Magma 选手采访 1月19日
2021/03/11 DOTA
python实现查询IP地址所在地
2015/03/29 Python
详解Python中__str__和__repr__方法的区别
2015/04/17 Python
python如何读写json数据
2018/03/21 Python
使用Python+wxpy 找出微信里把你删除的好友实例
2019/02/21 Python
详解Python学习之安装pandas
2019/04/16 Python
如何用Matplotlib 画三维图的示例代码
2020/07/28 Python
Python中猜拳游戏与猜筛子游戏的实现方法
2020/09/04 Python
详解python爬取弹幕与数据分析
2020/11/14 Python
Python做图像处理及视频音频文件分离和合成功能
2020/11/24 Python
利用CSS3的border-radius绘制太极及爱心图案示例
2016/05/17 HTML / CSS
来自世界上最好大学的在线课程:edX
2018/10/16 全球购物
摩飞电器俄罗斯官方网站:Morphy Richards俄罗斯
2020/07/30 全球购物
什么是servlet
2012/05/08 面试题
幼儿园父亲节活动方案
2014/03/11 职场文书
酒店端午节活动方案
2014/08/26 职场文书
少儿励志名言(80句)
2019/08/14 职场文书
postgresql无序uuid性能测试及对数据库的影响
2021/06/11 PostgreSQL
ObjectMapper 如何忽略字段大小写
2021/06/29 Java/Android