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 相关文章推荐
XP折叠菜单&amp;仿QQ2006菜单
Dec 16 Javascript
基于jQuery实现表格数据的动态添加与统计的代码
Jan 31 Javascript
jquery移动listbox的值原理及代码
May 03 Javascript
extjs 时间范围选择自动判断的实现代码
Jun 24 Javascript
JS模拟简易滚动条效果代码(附demo源码)
Apr 05 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
Oct 10 Javascript
JavaScript中绑定事件的三种方式及去除绑定
Nov 05 Javascript
jquery dataview数据视图插件使用方法
Dec 23 Javascript
jquery实现多次上传同一张图片
Jan 09 Javascript
利用d3.js制作连线动画图与编辑器的方法实例
Sep 05 Javascript
微信公众号H5之微信分享常见错误和问题(小结)
Nov 14 Javascript
浅谈JavaScript作用域
Dec 06 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实现与erlang的二进制通讯实例解析
2014/07/23 PHP
详解php 使用Callable Closure强制指定回调类型
2017/10/26 PHP
PHP XML Expat解析器知识点总结
2019/02/15 PHP
表单的焦点顺序tabindex和对应enter键提交
2013/01/04 Javascript
有关javascript的性能优化 (repaint和reflow)
2013/04/12 Javascript
实现网页页面跳转的几种方法(meta标签、js实现、php实现)
2014/05/20 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
2016/03/08 Javascript
JavaScript编写Chrome扩展实现与浏览器的交互及时间通知
2016/05/16 Javascript
JS实现向iframe中表单传值的方法
2017/03/24 Javascript
Vue.js实现移动端短信验证码功能
2017/03/29 Javascript
JS中的数组转变成JSON格式字符串的方法
2017/05/09 Javascript
Vue学习笔记进阶篇之过渡状态详解
2017/07/14 Javascript
node+express+ejs使用模版引擎做的一个示例demo
2017/09/18 Javascript
Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
2018/03/12 Javascript
JS判断字符串是否为整数的方法--简单的正则判断
2018/07/23 Javascript
d3绘制基本的柱形图的实现代码
2018/12/12 Javascript
150行代码带你实现微信小程序中的数据侦听
2019/05/17 Javascript
5分钟教你用nodeJS手写一个mock数据服务器的方法
2019/09/10 NodeJs
详解利用eventemitter2实现Vue组件通信
2019/11/04 Javascript
python中二维阵列的变换实例
2014/10/09 Python
使用Python简单的实现树莓派的WEB控制
2016/02/18 Python
Python判断列表是否已排序的各种方法及其性能分析
2016/06/20 Python
python实现微信机器人: 登录微信、消息接收、自动回复功能
2019/04/29 Python
Python简易计算器制作方法代码详解
2019/10/31 Python
Django框架反向解析操作详解
2019/11/28 Python
pytorch实现建立自己的数据集(以mnist为例)
2020/01/18 Python
Python反爬虫伪装浏览器进行爬虫
2020/02/28 Python
HTML5 History API 实现无刷新跳转
2016/01/11 HTML / CSS
Algenist奥杰尼官网:微藻抗衰老护肤品牌
2017/07/15 全球购物
清明节网上祭英烈活动总结
2014/04/30 职场文书
献爱心捐款倡议书
2014/05/14 职场文书
计算机售后服务承诺书
2014/05/30 职场文书
2014入党积极分子破除“四风”思想汇报
2014/09/14 职场文书
学生偷窃检讨书
2014/09/25 职场文书
抢劫罪辩护词
2015/05/21 职场文书
社区服务理念口号
2015/12/25 职场文书