jquery.tagsinput.js实现记录checkbox勾选的顺序


Posted in jQuery onSeptember 21, 2019

业务需求:可以根据checkbox的先后勾选传递有顺序的值让后台接收,决定用tagsinput显示checkbox的先后勾选顺序,并实时响应checkbox的勾选状态

思路:checkbox的值存在一个数组A,新创建一个数组B,如果选中一个,B push一个值,取消一个,remove一个值,因为数组是有序的,就做到响应checkbox的勾选顺序

效果:

jquery.tagsinput.js实现记录checkbox勾选的顺序

代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Tagsinput Checkbox</title>
 
<link rel="stylesheet" type="text/css" href="jquery.tagsinput.css" >
</head>
 
 
<body>
 checkbox: <input type="checkbox" value="0" name="fruit" οnclick="radioHandle(this.value)" />Apple
 <input type="checkbox" value="1" name="fruit" οnclick="radioHandle(this.value)" />Banana
 <input type="checkbox" value="2" name="fruit" οnclick="radioHandle(this.value)" />Pear
 <input type="checkbox" value="3" name="fruit" οnclick="radioHandle(this.value)" />Orange
 <br><br>
 <input type="text" id="fruit-tags" name="fruit-tags" >
 <input type="text" id="fruitChecked">
 
<script src="jquery.min.js" ></script>
<script src="jquery.tagsinput.js" ></script>
<script type="text/javascript">
 var fruitValue = new Array();
 var fruitName = ['Apple','Banana','Pear','Orange'];
 
 Array.prototype.removeByValue = function(val) {
  for(var i=0; i<this.length; i++) {
  if(this[i] == val) {
   this.splice(i, 1);
   break;
  }
  }
 };
 
 
 $('#fruit-tags').tagsInput({
 interactive: false,
 removeWithBackspace: false,
 onRemoveTag: function(value){
  //重点 通过值获得数组的索引
     //删除 checkbox不勾选 数组remove值 显示改变
     var index = fruitName.indexOf(value);
     $("input:checkbox[name=fruit][value="+index+"]").prop("checked",false);
     fruitValue.removeByValue(index);
     $('#fruitChecked').val(fruitValue.toString());
    }
 });
 
 function radioHandle(value){
  // --- 选中 push--
  if($("input:checkbox[name=fruit][value="+value+"]").is(':checked')){
   if($('#fruitChecked').val().indexOf(value) == -1){
    fruitValue.push(value);
    $('#fruit-tags').addTag(fruitName[parseInt(value)]);
   }
  }else{
   if($('#fruitChecked').val().indexOf(value) > -1){
    fruitValue.removeByValue(value);
    $('#fruit-tags').removeTag(fruitName[parseInt(value)]);
   }
  }
  $('#fruitChecked').val(fruitValue.toString());
 } 
 
 
</script>
</body>
</html>

参考:jQuery-Tags-Input

资源:Demo

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
Mar 23 jQuery
jQuery实现IE输入框完成placeholder标签功能的方法
Sep 20 jQuery
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
Jan 25 jQuery
jQuery+ajax读取json数据并按照价格排序示例
Mar 28 jQuery
Jquery和CSS实现选择框重置按钮功能
Nov 08 jQuery
jQuery实现的3D版图片轮播示例【滑动轮播】
Jan 18 jQuery
jQuery内容选择器与表单选择器实例分析
Jun 28 jQuery
Jquery动态列功能完整实例
Aug 30 jQuery
JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
Oct 16 jQuery
jQuery 淡入/淡出效果函数用法分析
May 19 jQuery
jquery简易手风琴插件的封装
Oct 13 jQuery
jquery实现淡入淡出轮播图效果
Dec 13 jQuery
jquery弹窗时禁止body滚动条滚动的例子
Sep 21 #jQuery
jQuery设置下拉框显示与隐藏效果的方法分析
Sep 15 #jQuery
基于jquery ajax的多文件上传进度条过程解析
Sep 11 #jQuery
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
Sep 10 #jQuery
jQuery实现每日秒杀商品倒计时功能
Sep 06 #jQuery
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
Sep 03 #jQuery
JavaScript自动生成 年月范围 选择功能完整示例【基于jQuery插件】
Sep 03 #jQuery
You might like
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
2014/04/08 PHP
WordPress中对访客评论功能的一些优化方法
2015/11/24 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
js实现GridView单选效果自动设置交替行、选中行、鼠标移动行背景色
2010/05/27 Javascript
JavaScript包装对象使用介绍
2013/08/29 Javascript
转换字符串为json对象的方法详解
2013/11/29 Javascript
js使用心得分享
2015/01/13 Javascript
JavaScript获取DOM元素的11种方法总结
2015/04/25 Javascript
js 模仿锚点定位的实现方法
2016/11/19 Javascript
vue双向绑定的简单实现
2016/12/22 Javascript
vue日期组件 支持vue1.0和2.0
2017/01/09 Javascript
详解vue2.0组件通信各种情况总结与实例分析
2017/03/22 Javascript
详解Node.js中exports和module.exports的区别
2017/04/19 Javascript
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
2017/06/23 Javascript
jQuery validata插件实现方法
2017/06/25 jQuery
JQuery 获取多个select标签option的text内容(实例)
2017/09/07 jQuery
jquery使用FormData实现异步上传文件
2018/10/25 jQuery
用npm-run实现自动化任务的方法示例
2019/01/14 Javascript
vue-cli2与vue-cli3在一台电脑共存的实现方法
2019/09/25 Javascript
react结合bootstrap实现评论功能
2020/05/30 Javascript
JavaScript构造函数原理及实现流程解析
2020/11/19 Javascript
[59:42]Secret vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
tensorflow构建BP神经网络的方法
2018/03/12 Python
Python+OpenCV实现车牌字符分割和识别
2018/03/31 Python
python命令行参数用法实例分析
2019/06/25 Python
Python3变量与基本数据类型用法实例分析
2020/02/14 Python
python实现mask矩阵示例(根据列表所给元素)
2020/07/30 Python
pandas apply多线程实现代码
2020/08/17 Python
python判断字符串以什么结尾的实例方法
2020/09/18 Python
白俄罗斯在线大型超市:e-dostavka.by
2019/07/25 全球购物
构造方法和其他方法的区别
2016/04/26 面试题
计算机专业毕业生自荐信范文
2014/03/06 职场文书
计划生育诚信协议书
2014/11/02 职场文书
党员观看《筑梦中国》心得体会
2016/01/18 职场文书
Django利用AJAX技术实现博文实时搜索
2021/05/06 Python
pytorch 实现变分自动编码器的操作
2021/05/24 Python