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 void(0)的妙用
Oct 21 Javascript
jQuery学习3:操作元素属性和特性
Feb 07 Javascript
javascript初学者常用技巧
Sep 02 Javascript
javascript中Date()函数在各浏览器中的显示效果
Jun 18 Javascript
jQuery包裹节点用法完整示例
Sep 13 Javascript
AngularJS实现根据变量改变动态加载模板的方法
Nov 04 Javascript
Vue编写多地区选择组件
Aug 21 Javascript
基于JS判断对象是否是数组
Jan 10 Javascript
es6中class类静态方法,静态属性,实例属性,实例方法的理解与应用分析
Feb 15 Javascript
Vue组件间数据传递的方式(3种)
Jul 13 Javascript
vue+elementUI中表格高亮或字体颜色改变操作
Nov 02 Javascript
Vue的生命周期一起来看看
Feb 24 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+MSSQL分页的例子
2006/10/09 PHP
解析php addslashes()与addclashes()函数的区别和比较
2013/06/24 PHP
tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
2020/05/26 PHP
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
jQuery formValidator表单验证插件开源了 含API帮助、源码、示例
2008/08/14 Javascript
js DOM模型操作
2009/12/28 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
javascript中Math.random()使用详解
2015/04/15 Javascript
设置jquery UI 控件的大小方法
2016/12/12 Javascript
详解Bootstrap各式各样的按钮(推荐)
2016/12/13 Javascript
AngularJS实现根据不同条件显示不同控件
2017/04/20 Javascript
详解angularJs模块ui-router之状态嵌套和视图嵌套
2017/04/28 Javascript
vue2.0 自定义组件的方法(vue组件的封装)
2018/06/05 Javascript
快速解决处理后台返回json数据格式的问题
2018/08/07 Javascript
C#程序员入门学习微信小程序的笔记
2019/03/05 Javascript
vue+echarts实现可拖动节点的折线图(支持拖动方向和上下限的设置)
2019/04/12 Javascript
在小程序中推送模板消息的实现方法
2019/07/22 Javascript
vue实现计步器功能
2019/11/01 Javascript
vue+render+jsx实现可编辑动态多级表头table的实例代码
2020/04/01 Javascript
javascript前端和后台进行数据交互方法示例
2020/08/07 Javascript
Python爬取附近餐馆信息代码示例
2017/12/09 Python
Python网络编程之TCP套接字简单用法示例
2018/04/09 Python
python获取文件真实链接的方法,针对于302返回码
2018/05/14 Python
解决Shell执行python文件,传参空格引起的问题
2018/10/30 Python
PyTorch 1.0 正式版已经发布了
2018/12/13 Python
基于Django静态资源部署404的解决方法
2019/07/28 Python
python3 pathlib库Path类方法总结
2019/12/26 Python
Pytorch 神经网络—自定义数据集上实现教程
2020/01/07 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
2020/05/03 Python
CSS3 filter(滤镜)实现网页灰色或者黑色模式的代码
2020/11/30 HTML / CSS
微软澳洲官方网站:Microsoft Australia
2017/01/10 全球购物
皮尔·卡丹巴西官方商店:Pierre Cardin
2017/07/21 全球购物
若干个Java基础面试题
2015/05/19 面试题
群众路线剖析材料范文
2014/10/09 职场文书
监察建议书
2015/02/04 职场文书
关于公司年会的开幕词
2016/03/04 职场文书