JavaScript

超轻量级php框架startmvc

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

更新时间:2020-09-14 18:00:01 作者:startmvc
业务需求:可以根据checkbox的先后勾选传递有顺序的值让后台接收,决定用tagsinput显示checkbo

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

思路:checkbox的值存在一个数组A,新创建一个数组B,如果选中一个,B push一个值,取消一个,remove一个值,因为数组是有序的,就做到响应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.tagsinput.js checkbox