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 实现的数独解题算法网页实例
Oct 15 Javascript
浅析JavaScript中的CSS属性及命名规范
Nov 28 Javascript
JavaScript-RegExp对象只能使用一次问题解决方法
Jun 23 Javascript
JavaScript弹窗基础篇
Apr 27 Javascript
Angular2中Bootstrap界面库ng-bootstrap详解
Oct 18 Javascript
使用Vue动态生成form表单的实例代码
Apr 26 Javascript
优雅的elementUI table单元格可编辑实现方法详解
Dec 23 Javascript
layui form表单提交后实现自动刷新
Oct 25 Javascript
基于Web Audio API实现音频可视化效果
Jun 12 Javascript
jQuery实现可以计算进制转换的计算器
Oct 19 jQuery
js实现缓动动画
Nov 25 Javascript
JS新手入门数组处理的实用方法汇总
Apr 07 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
短波问题解答
2021/02/28 无线电
PHP4实际应用经验篇(1)
2006/10/09 PHP
vBulletin HACK----关于排版的两个HACK
2006/10/09 PHP
PHP Directory 函数的详解
2013/03/07 PHP
使用PHP similar text计算两个字符串相似度
2015/11/06 PHP
PHP实现二维数组按某列进行排序的方法
2016/11/18 PHP
用js自动判断浏览器分辨率的代码
2007/01/28 Javascript
XMLHTTP 乱码的解决方法(UTF8,GB2312 编码 解码)
2011/01/12 Javascript
通过jQuery源码学习javascript(二)
2012/12/27 Javascript
动态创建script标签实现跨域资源访问的方法介绍
2014/02/28 Javascript
js写的方法实现上传图片之后查看大图
2014/03/05 Javascript
基于编写jQuery的无缝滚动插件
2014/08/02 Javascript
JavaScript函数定义的常见注意事项小结
2014/09/16 Javascript
详解Javascript动态操作CSS
2014/12/08 Javascript
javascript实现类似超链接的效果
2014/12/26 Javascript
直接拿来用的页面跳转进度条JS实现
2016/01/06 Javascript
JS面试题---关于算法台阶的问题
2016/07/26 Javascript
js实现多行文本框统计剩余字数功能
2017/03/28 Javascript
javascript编写简易计算器
2017/05/06 Javascript
Vue循环组件加validate多表单验证的实例
2018/09/18 Javascript
继承行为在 ES5 与 ES6 中的区别详解
2019/12/24 Javascript
详解template标签用法(含vue中的用法总结)
2021/01/12 Vue.js
Python设计模式中单例模式的实现及在Tornado中的应用
2016/03/02 Python
Python基于回溯法解决01背包问题实例
2017/12/06 Python
Python实现PS图像调整黑白效果示例
2018/01/25 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
2019/02/18 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
2019/06/24 Python
在python中,使用scatter绘制散点图的实例
2019/07/03 Python
Marmot土拨鼠官网:美国专业户外运动品牌
2018/01/11 全球购物
BISSELL官网:北美吸尘器第一品牌
2019/03/14 全球购物
领导调研接待方案
2014/02/27 职场文书
项目合作协议书
2014/04/16 职场文书
五心教育心得体会
2014/09/04 职场文书
离婚财产分配协议书
2014/10/21 职场文书
院系推荐意见
2015/06/05 职场文书
springboot新建项目pom.xml文件第一行报错的解决
2022/01/18 Java/Android