业务需求:可以根据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>
资源:Demo
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
© 版权声明
THE END
暂无评论内容