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解密入门之凭直觉解
Jun 25 Javascript
Javascript Request获取请求参数如何实现
Nov 28 Javascript
js获取dom的高度和宽度(可见区域及部分等等)
Jun 13 Javascript
基于jQuery实现表单提交验证
Nov 24 Javascript
jQuery实现自定义下拉列表
Jan 05 Javascript
JavaScript删除数组元素的方法
Mar 20 Javascript
js代码实现随机颜色的小方块
Jul 30 Javascript
JS监听微信、支付宝等移动app及浏览器的返回、后退、上一页按钮的事件方法
Aug 05 Javascript
JavaScript 继承详解(六)
Oct 11 Javascript
echarts鼠标覆盖高亮显示节点及关系名称详解
Mar 17 Javascript
webpack4+Vue搭建自己的Vue-cli项目过程分享
Aug 29 Javascript
解决vue项目刷新后,导航菜单高亮显示的位置不对问题
Nov 01 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 URL编码解码函数代码
2009/03/10 PHP
简单谈谈php中ob_flush和flush的区别
2014/11/27 PHP
基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据
2015/09/23 PHP
浅析PHP中call user func()函数及如何使用call user func调用自定义函数
2015/11/05 PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
2019/02/20 PHP
Javascript中的数学函数
2007/04/04 Javascript
javascript回车完美实现tab切换功能
2014/03/13 Javascript
JavaScript Array对象扩展indexOf()方法
2014/05/09 Javascript
Javascript中prototype属性实现给内置对象添加新的方法
2015/05/14 Javascript
jQuery切换所有复选框选中状态的方法
2015/07/02 Javascript
浅谈JavaScript中null和undefined
2015/07/09 Javascript
百度地图API之本地搜索与范围搜索
2015/07/30 Javascript
JavaScript继承模式粗探
2016/01/12 Javascript
jquery form表单获取内容以及绑定数据
2016/02/24 Javascript
AngularJS入门教程之Scope(作用域)
2016/07/27 Javascript
Angular.js中$apply()和$digest()的深入理解
2016/10/13 Javascript
Angularjs中的页面访问权限怎么设置
2016/11/11 Javascript
关于vue 项目中浏览器跨域的配置问题
2020/11/10 Javascript
Python 的 Socket 编程
2015/03/24 Python
详解Python使用simplejson模块解析JSON的方法
2016/03/24 Python
python中string模块各属性以及函数的用法介绍
2016/05/30 Python
python实现下载文件的三种方法
2017/02/09 Python
Python中elasticsearch插入和更新数据的实现方法
2018/04/01 Python
详解python内置常用高阶函数(列出了5个常用的)
2020/02/21 Python
keras和tensorflow使用fit_generator 批次训练操作
2020/07/03 Python
PyQt中使用QtSql连接MySql数据库的方法
2020/07/28 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
2020/11/26 Python
Superdry瑞典官网:英国日本街头风品牌
2017/05/17 全球购物
Superdry极度干燥美国官网:英国制造的服装品牌
2018/11/13 全球购物
平面网站制作专科生的自我评价分享
2013/12/11 职场文书
模具设计与制造专业自荐书
2014/07/01 职场文书
2014年幼儿园后勤工作总结
2014/11/10 职场文书
2015迎新晚会开场白
2015/05/29 职场文书
机关干部正风肃纪心得体会
2016/01/15 职场文书
2019中秋节祝福语大全,提前收藏啦
2019/09/10 职场文书
理解python中装饰器的作用
2021/07/21 Python